Java基础-Arrays排序
java.util.Arrays
1、基本类型的数组排序
Arrays.sort(Object[] a);
2、对象数组排序
Arrays.sort(Object[] a);
需要排序的对象实现Comparable<>,并对其中的compareTo方法进行定义
//例如将Employee[] employee按照薪资排序
class Employee implements Comparable<Employee>{
....
public int compareTo(Employee other){
return Double.compare(salary, other.salary);
}
}
3、字符串数组按元素长度排序(二维数组按数组元素的第一个数字大小排序)
Arrays.sort(T[] a, Comparator<? super T> c)
实现比较器Comparator<>接口,并对其中的compare方法进行定义
//定义一个比较器类直接实现Comparator<>
class LengthComparator implements Comparator<String>{
public int compare(String first, String second){
return first.length() - second.length();
}
}
//或者使用匿名内部类直接实例化一个对象
new Comparator<String>(){
public int compare(String first, String second){
return first.length() - second.length();
}
}
//或者使用lambda表达式
(first, second) -> {first.length() - second.length()}
//例如String[] test = {"apple", "banana", "pear"}对其进行长度排序
Arrays.sort(test, new LengthComparator());
或
Arrays.sort(test,new Comparator<String>(){
public int compare(String first, String second){
return first.length() - second.length();
}
});
或
Arrays.sort(test, (first, second) -> {first.length() - second.length()});
//例如int[][] test = {{2,6}, {1,3},{8,10},{15,18}}按元素数组的第一个数字大小排序
Arrays.sort(test,new Comparator<int[]>(){
public int compare(int[] first, int[] second){
return first[0] - second[0];
}
});