大家好,距离上一次写博客已经过去一段时间了,主要是因为自己最近的工作真的很忙😅(毕竟现在的大环境比较差,经济下行),所以导致自己没有时间与大家分享编程小知识。好了,废号不多说,这次我主要给大家分享的内容是关于“JAVA的Stream流操作”。
在开始讲知识点之前,大家可以先看看下面的一些代码片段。
List<String> ids = Arrays.asList("201", "110", "8", "9", "27", "19", "333");
Stream<String> stream = ids.stream().filter(s -> s.length() > 2);
又或者是下面这些:
List<User> userList = new ArrayList();
userList.add(new User("zhangsan", 12));
userList.add(new User("zhangsan", 12));
userList.add(new User("zhangsan", 16));
userList.add(new User("xiaoming", 15));
userList.add(new User("xiaoming", 11));
userList.add(new User("xiaohong", 12));
List<User> result = userList.stream()
.collect(collectingAndThen(toCollection(() ->
new TreeSet<>(comparing(User::getName))), ArrayList::new));
result.forEach(System.out::println);
大家是不是有的时候对上面的代码好像有一点点似懂非懂的感觉,其实这很正常,这是Java 8出现的Stream流,“Stream流”的出现让代码变得更加简洁和优雅,目前看不懂这些代码的含义其实完全不影响学习“Stream流”,接下来我会给大家仔细讲解这部分的知识。(本篇博客的内容是我在看了其他优秀博主写的博客之后进行总结的,所以有一部分的内容是相似的,为了帮助大家更好的理解,我对一些知识点加入了自己的理解。)
1、初识Stream
**定义:**在JAVA中,如果涉及到对“数组”、“Collection”等集合类中的元素操作时,我们一般会通过循环遍历的方式来编写代码,或者是使用“Stream”的方式来进行处理。
可能大家对上面的定义不是很理解,这无所谓的;我只是希望大家有个基本的概念就行,下面我们通过一个小需求来