学习jdk1.8-Lambda 表达式 与Collections
学习jdk1.8-Lambda 表达式 与Collections
程序员七平直到现在jdk1.8版本已经发布了有近5个年头了。今天做一个浅显的学习和记录,便于后面的查找。如果你也有兴趣,不妨一起交流交流,如有不对之处,还请指点指点…
写在前面
看牛逼的代码,到处都是知识点。咱研究研究一些简单的,使用一些示例代码来进行操作。
Lambda 表达式
老版本的Java中的排序方式,实现一组字符串按照字典反序排列,排序结果["peter","jany","brain","anna","alex"]
:
1 | List<String> names = Arrays.asList("peter","anna","brain","jany","alex"); |
Comparator 中 compare方法介绍:
Collections 中 sort方法介绍:
该方法默认的排序是正序
String的compareTo方法:public int compareTo(String anotherString)
如果参数字符串等于此字符串,则值为0 ; 如果这个字符串的字典比字符串参数小,则值小于0; 如果此字符串的字典大小超过字符串参数,则值大于0 。
Java8中的lambda表达式:
1 | Collections.sort(names,(String a, String b) -> { |
更简单的方式:
1 | Collections.sort(names,(String a, String b) -> b.compareTo(a)); |
更更简单的方式:
1 | Collections.sort(names,(a,b) -> b.compareTo(a)); |
一种不使用lambda表达式的方法,reverseOrder()
以反字典(字母顺序)排列阵列:
1 | Collections.sort(names, Comparator.reverseOrder()); |
Stream 接口
Java8 中的 Stream 是对集合(Collection)对象功能的增强,它专注于对集合对象进行各种非常便利、高效的聚合操作(aggregate operation),或者大批量数据操作 (bulk data operation)。Stream API 借助于同样新出现的 Lambda 表达式,极大的提高编程效率和程序可读性,串行Stream上的操作是在一个线程中依次完成,而并行Stream则是在多个线程上同时执行。
- 创建一个stream的方式,
Collection.stream()
创建了一个串行的stream;Collection.parallelStream()
创建了一个并行的stream;:1
2
3
4
5
6
7List<String> stringCollection = new ArrayList<>();
stringCollection.add("ddd");
stringCollection.add("ccc");
stringCollection.add("bbb");
stringCollection.add("aaa");
Stream<String> stream = stringCollection.stream();
Stream<String> stringStream = stringCollection.parallelStream();
评论
匿名评论隐私政策
TwikooWaline
✅ 你无需删除空行,直接评论以获取最佳展示效果