- Arrays.sort()中只有数组参数
int[] array = {5, 6, -1, 4};
Arrays.sort(array);
这种是默认的排序,按照字典序(ASCII)的顺序进行排序。 Arrays.sort()中数组参数和排序方法
使用提供的方法
String[] str = {“abc”, “aaa”, “abc”};
Arrays.sort(str, String.CASE_INSENSITIVE_ORDER);
String中定义的忽略大小写,完全通过字母的顺序进行排序
Arrays.sort(str, Collections.reverseOrder());
反向排序自定义排序方法
出来使用java提供的排序方法外,还可以使用自定义的排序方法,自定义排序方法需要实现java.util.Comparetor接口中的compare方法。
int compare(Object obj1, Object obj2)
compare方法返回负数时代表不交换
compare方法返回0时代表不交换
compare方法返回正数时代表交换
例:
package test;
import java.util.Arrays;
import java.util.Comparator;;
class TestCompare implements Comparator<ArraysSort> {
public static Comparator<ArraysSort> testcompare = new TestCompare();
@Override
public int compare(ArraysSort o1, ArraysSort o2) {
// TODO Auto-generated method stub
if(o1.a < o2.a && o1.b < o2.b) return -1;
else if(o1.a == o2.a && o1.b < o2.b) return 0;
return 1;
}
}
public class ArraysSort {
public int a, b;
public ArraysSort() {}
public ArraysSort(int a,int b) {
this.a = a;
this.b = b;
}
public static void main(String[] args) {
ArraysSort[] arrays = {new ArraysSort(2,1), new ArraysSort(1,2),
new ArraysSort(1,1)};
Arrays.sort(arrays, TestCompare.testcompare);
for(ArraysSort t : arrays) {
System.out.println(t.a + " " + t.b);
}
}
}