1.Array类
主要提供了动态创建和访问 Java 数组的方法
2.Arrays类
用来操作数组(比如排序和搜索)的各种方法。此类还包含一个允许将数组作为列表来查看的静态工厂
1). 若需要排序的元素实现了Comparable接口,则可以直接使用Arrays.sort()进行排序
2)若需要排序的元素未实现Comparable接口,则我们可使用Comparator 比较器接口
我们若需要控制某个类的次序,而该类本身不支持排序(即没有实现Comparable接口);那么,我们可以建立一个“比较器”来进行排序。这个“比较器”只需要实现Comparator接口即可。也就是说,我们可以通过“实现Comparator类来新建一个比较器”,然后通过该比较器对类进行排序。
-
Arrays.sort(list, new Comparator())
- 参数一:需要排序的数组
- 参数二:比较器,实现Comparator接口的类,返回一个int型的值,就相当于一个标志,告诉sort方法按什么顺序来对数组进行排序。
Arrays.sort(intervals, new Comparator<int[]>() {
public int compare(int[] interval1, int[] interval2) {
return interval1[0] - interval2[0];
}
});
3.Collection
是java.util下的接口,它是各种集合结构的父接口 继承与他的接口主要有Set 和List
4.Collections
它包含有各种有关集合操作的静态方法。他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作
1). 若需要排序的元素实现了Comparable接口,则可以直接使用Colletions.sort()或者Arrays.sort()进行排序
2)若需要排序的元素未实现Comparable接口,则我们可使用Comparator 比较器接口
我们若需要控制某个类的次序,而该类本身不支持排序(即没有实现Comparable接口);那么,我们可以建立一个“比较器”来进行排序。这个“比较器”只需要实现Comparator接口即可。也就是说,我们可以通过“实现Comparator类来新建一个比较器”,然后通过该比较器对类进行排序。
-
Collections.sort(list, new Comparator())
- 参数一:需要排序的list
- 参数二:比较器,实现Comparator接口的类,返回一个int型的值,就相当于一个标志,告诉sort方法按什么顺序来对list进行排序
Collections.sort(a, new Comparator<List<Integer>>() {
public int compare(List<Integer> interval1, List<Integer> interval2) {
return interval1.get(0).compareTo(interval2.get(0));
}
});
//lambda表达式
Collections.sort(a, (Comparator<List<Integer>>) (o1, o2) -> {
return o1.get(0).compareTo(o2.get(0));
//也能改成o1.get(0)-o2.get(0)
});