这里是如何进行排序的,因为我可以看到Arrays
类没有实现Comparable
。
//Add values to Array
int arrayname[]=new int[3];
arrayname[0]=40;
arrayname[1]=10;
arrayname[2]=35;
//Sort the elements
Arrays.sort(arrayname);
//Display values
System.out.println("Values in Array After Sorting:");
for(int i=0;i<arrayname.length;i++){
System.out.print(arrayname[i]+", ");
}
不必如此。它使用类型的compareTo
方法。这意味着在对象的情况下,您需要实现Comparable<T>
接口。
请参阅https://docs.oracle.com/javase/7/docs/api/java/util/Arrays.html#sort(java.lang.Object[](
对于原始类型,它们已经有了自然的排序。
您还可以传递lambda或方法引用以进行自定义排序。
如果查看Arrays.sort()
代码,它在内部使用一个名为ComparableTimSort
的类。这个类有一个方法ComparableTimSort.binarySort(Object[] a, int lo, int hi, int start)
,它实际上期望参数a
中的元素是Comparable
。
由于Arrays.sort()
是static
方法,是一种实用方法,因此Arrays
不直接实现Comparable
。传递给它的数组中的元素需要是Comparable
。