通常我们希望排序算法不只是用来排序数字,对对象也进行排序,对泛型加以约束
核心方法
泛型类需要实现Comparable接口,实现compareTo方法 a.compareTo(b) a比b小返回-1,等于返回0,大于返回1 具体逻辑可以自己实现
以选择排序为例
public class SelectionSort<E> {private SelectionSort(){}public static <E extends Comparable<E>> void selection(E[] arr) {if (arr.length <= 1) {return;}for (int i = 0; i < arr.length; i++) {//当前最小数的下标int minPos = i;for (int j = i + 1; j < arr.length; j++) {//获得未排序的最小数下标minPos = arr[minPos].compareTo(arr[j]) <= 0 ? minPos : j;}//最小数和当前下标的数交换位置E temp = arr[i];arr[i] = arr[minPos];arr[minPos] = temp;}}}
