为熟悉jdk8的stream,lambada写法,特编写一些简单示例如下:
先上一个排序,使用了lambda表达式的演变图:
代码如下:
public void test1() {
System.out.println("##########test1##########");
//jdk8以前的写法,Comparator接口实现的参数
List<String> list01 = Arrays.asList("a","b","g","f","e","c","d");
list01.sort(new Comparator<String>() {
public int compare(String e1, String e2) {
// TODO Auto-generated method stub
return e1.compareTo(e2);
}
});
System.out.println("=======list01======");
System.out.println(JSON.toJSON(list01));
//尝试使用lambada表达式
List<String> list02 = Arrays.asList("a","b","g","f","e","c","d");
list02.sort((String e1,String e2) -> {
int a = e1.compareTo(e2);
return a ;
});
System.out.println("======list02=======");
System.out.println(JSON.toJSON(list02));
//lambada表达式简化版本
List<String> list03 = Arrays.asList("a","b","g","f","e","c","d");
list03.sort((e1,e2) -> e1.compareTo(e2));
System.out.println("=======list03======");
System.out.println(JSON.toJSON(list03));
//lambada表达式进一步简化
List<String> list04 = Arrays.asList("a","b","g","f","e","c","d");
list04.sort(String::compareTo);
System.out.println("=====list04========");
System.out.println(JSON.toJSON(list04));
System.out.println();
}
其他方式实现排序:
public void test2() {
System.out.println("##########test2##########");
//使用Collections类的sort方法
List<String> list05 = Arrays.asList("a","b","g","f","e","c","d");
Collections.sort(list05,(e1,e2) -> e1.compareTo(e2));
System.out.println("=====list05========");
System.out.println(JSON.toJSON(list05));
//使用stream的sort方法2
List<String> list06 = Arrays.asList("a","b","g","f","e","c","d");
List<String> list07 = list06.stream()
.sorted((e1,e2) -> e1.compareTo(e2))
.collect(Collectors.toList());
System.out.println("=======list07======");
System.out.println(JSON.toJSON(list07));
//使用Comparator接口的naturalOrder方法
List<String> list08 = Arrays.asList("a","b","g","f","e","c","d");
list08.sort(Comparator.naturalOrder());
System.out.println("======list08=======");
System.out.println(JSON.toJSON(list08));
}
测试方法:
public static void main(String[] args) {
List<String> list00 = Arrays.asList("a","b","g","f","e","c","d");
List<String> list = list00.stream().sorted().collect(Collectors.toList());
System.out.println(JSON.toJSON(list));
new TestCompareStream().test1();
new TestCompareStream().test2();
}
执行结果:如图:最终的排序结果都一样。