Java List.sort() 方法用来对List集合中的元素进行排序。这种排序可以基于元素的自然顺序,也可以基于我们提供的比较器决定。
一、基于自然顺序的排序 {#title-1}
使用List.sort()方法,我们可以轻易的对List中的元素进行自然排序。由于Java的包装类已实现了Comparable接口,所以对于基本类型及其包装类,使用List.sort()方法进行排序十分简洁方便。
List integerList = new ArrayList<>(Arrays.asList(5, 3, 8, 1));
integerList.sort(null);
System.out.println(integerList); // prints "[1, 3, 5, 8]"
此片段表示创建了一个整数列表,并使用了sort()函数对其进行升序排序。
二、使用Comparator进行排序 {#title-2}
虽然List.sort()方法为我们提供了轻松进行自然排序的途径,但我们仍然会遇到很多需要自定义排序规则的情况。这个时候,我们就需要使用到Comparator。
List stringList = new ArrayList<>(Arrays.asList("Orange", "apple", "BANANA"));
stringList.sort(Comparator.comparing(String::toString));
System.out.println(stringList); // prints "[BANANA, Orange, apple]"
此代码表示创建了一个字符串列表,并使用了Comparator.comparing()方法对其进行了比较。
三、基于lambda表达式的排序 {#title-3}
从Java 8开始,我们可以使用 Lambda 表达式来简化代码的编写。对List中的对象进行自定义排序,就可以用到Lambda表达式.
List stringList2 = new ArrayList<>(Arrays.asList("Orange", "apple", "BANANA"));
stringList2.sort((String s1, String s2) -> s1.compareToIgnoreCase(s2));
System.out.println(stringList2); // prints "[apple, BANANA, Orange]"
此代码表示创建了一个字符串列表,并使用了lambda表达式对其进行了忽略大小写的比较。