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];
	}
});