如下代码
import java.util.Collections;
import java.util.List;
import java.util.ArrayList;
import java.util.Comparator;
public class Java8Tester {
public static void main(String args[]) {
List<String> names1 = new ArrayList<String>();
names1.add("Google ");
names1.add("Runoob ");
names1.add("Taobao ");
names1.add("Baidu ");
names1.add("Sina ");
List<String> names2 = new ArrayList<String>();
names2.add("Google ");
names2.add("Runoob ");
names2.add("Taobao ");
names2.add("Baidu ");
names2.add("Sina ");
Java8Tester tester = new Java8Tester();
System.out.println("使用 Java 7 语法: ");
tester.sortUsingJava7(names1);
System.out.println(names1);
System.out.println("使用 Java 8 语法: ");
tester.sortUsingJava8(names2);
System.out.println(names2);
}
// 使用 java 7 排序
private void sortUsingJava7(List<String> names) {
Collections.sort(names, new Comparator<String>() {
@Override
public int compare(String s1, String s2) {
return s1.compareTo(s2);
}
});
}
// 使用 java 8 排序
private void sortUsingJava8(List<String> names) {
Collections.sort(names, (s1, s2) -> s1.compareTo(s2));
}
/*使用 Java 7 语法:
[Baidu , Google , Runoob , Sina , Taobao ]
使用 Java 8 语法:
[Baidu , Google , Runoob , Sina , Taobao ]*/
}
数字排序
public static void main(String[] args) {
List<Integer> integers = Arrays.asList(10, 5, 3, 7, 2);
Collections.sort(integers,(s1,s2) -> s1.compareTo(s2));
System.out.println(integers);
}
// [2, 3, 5, 7, 10]
根据集合中某一列的Integer类型排序
// 使用排序, 注意: 比较器只支持Integer类型
// 输出:Student{name='小明', sex='男', clazz='1'}Student{name='小红', sex='女', clazz='1'}Student{name='小刚', sex='男', clazz='2'}Student{name='小白', sex='男', clazz='2'}Student{name='小蓝', sex='男', clazz='3'}Student{name='王老五', sex='男', clazz='10'}
Collections.sort(list, Comparator.comparing(Student::getClazz));
list.forEach(System.out::print);