Java提供了一个操作Set、List和Map等集合的工具类:Collections,该工具类里提供了大量方法对集合元素进行排序、查询和修改等操作,下面要说的就是Collections工具类里面排序操作中的sort方法。
首先创建一个list集合,代码如下:
List<Integer> list = new ArrayList<>();
list.add(2);
list.add(6);
list.add(3);
list.add(5);
list.add(1);
list.add(4);
System.out.println("list集合:" + list);
输出结果如图:
- sort (List list):根据元素的自然顺序对指定列表按升序进行排序。
例如:直接调用Collections工具类中的sort方法,传入上面创建的list集合作为参数,然后输出,代码如下:
Collections.sort(list);
System.out.println("sort自然排序:" + list);
结果如图所示:
- sort(List list, Comparator c):根据指定比较器产生的顺序对指定列表进行排序,也就是自定义排序,第一个参数是传入的要排序的列表,第二个参数是指定的比较器。
例如:将list列表按降序进行排序,代码如下:
首先创建一个比较器,在这个比较器中定义好排序规则(升序或降序),此处为降序排序:
Comparator<Integer> c = new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
// 升序排序 o1 - o2
// 降序排序 o2 - o1
return o2 - o1;
}
};
然后将这个比较器作为一个参数传递进sort方法:
Collections.sort(list, c);
System.out.println("sort降序排序:" + list);
输出结果如下:
图3
也可以直接在调用sort方法时创建比较器,代码如下:
Collections.sort(list, new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
// 升序排序 o1 - o2
// 降序排序 o2 - o1
return o2 - o1;
}
});