Java核心编程总结(七、Stream流),渣本毕业两年经验
2021/9/6 12:37:09
本文主要是介绍Java核心编程总结(七、Stream流),渣本毕业两年经验,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
-
然后就用这个Stream流操作集合或者数组的元素
-
然后用Stream流简化替代集合操作的API
集合获取流的API:
-
default Stream<E> stream()
-
集合获取Stream流用
stream()
public class StreamDemo01 { public static void main(String[] args) { /** --------------------Collection集合获取流------------------------------- */ // Collection集合如何获取Stream流。 Collection<String> c = new ArrayList<>(); Stream<String> ss = c.stream(); /** --------------------Map集合获取流------------------------------- */ Map<String, Integer> map = new HashMap<>(); // 先获取键的Stream流。 Stream<String> keyss = map.keySet().stream(); // 在获取值的Stream流 Stream<Integer> valuess = map.values().stream(); // 获取键值对的Stream流(key=value: Map.Entry<String,Integer>) Stream<Map.Entry<String,Integer>> keyAndValues = map.entrySet().stream(); /** ---------------------数组获取流------------------------------ */ // 数组也有Stream流。 String[] arrs = new String[]{"Java", "JavaEE" ,"Spring Boot"}; Stream<String> arrsSS1 = Arrays.stream(arrs); Stream<String> arrsSS2 = Stream.of(arrs); } }
1.3Stream流API
| forEach | count | filter | limit | skip | map | concat |
| — | — | — | — | — | — | — |
| 逐一处理(遍历) | 统计个数 | 过滤元素 | 取前几个元素 | 跳过前几个 | 加工方法 | 合并流 |
- map: 把原来的元素加工以后,重新放上去
public class StreamDemo01 { public static void main(String[] args) { List<String> list = new ArrayList<>(); list.add("张无忌"); list.add("周芷若"); list.add("赵敏"); list.add("张强"); list.add("张三丰"); list.add("张三丰"); // 遍历出长度为3并且姓张的人 list.stream().filter( s -> s.length() == 3 ).filter( s -> s.startsWith("张")) .forEach( System.out::println); // 统计数量 long count = list.stream().filter( s -> s.length() == 3 ) .filter( s -> s.startsWith("张")).count(); System.out.println(count); // 取前2个 list.stream().filter(s -> s.length() == 3).limit(2) .forEach( System.out::println); // 跳过前2个 list.stream().filter(s -> s.length() == 3).skip(2) .forEach( System.out::println); } }
1.4终结于非终结方法
-
终结方法:一旦Stream调用了终结方法,流的操作就全部终结了,不能继续使用了,只能创建新的Stream操作
- 终结方法:
foreach
count
- 终结方法:
-
非终结方法:每次调用完成以后返回一个新的流对象,可以继续使用,支持链式编程
public class StreamDemo { public static void main(String[] args) { List<String> list = new ArrayList<>(); list.add("张无忌"); list.add("周芷若"); list.add("赵敏"); list.add("张强"); list.add("张三丰"); list.add("张三丰"); // foreach终结方法 list.stream().filter(s -> s.startsWith("张")) .filter(s -> s.length() == 3).forEach(System.out::println); long count = list.stream().filter(s -> s.startsWith("张")) .filter(s -> s.length() == 3).count(); System.out.println(count); } }
1.5收集Stream流
- 什么是收集Stream流?
最后
给大家送一个小福利
资料附送高清脑图,高清知识点讲解教程,以及一些面试真题及答案解析。送给需要的提升技术、准备面试跳槽、自身职业规划迷茫的朋友们。
CodeChina开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频】
1630902491331)]
资料附送高清脑图,高清知识点讲解教程,以及一些面试真题及答案解析。送给需要的提升技术、准备面试跳槽、自身职业规划迷茫的朋友们。
CodeChina开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频】
[外链图片转存中…(img-FBCTDjNM-1630902491333)]
这篇关于Java核心编程总结(七、Stream流),渣本毕业两年经验的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-26Mybatis官方生成器资料详解与应用教程
- 2024-11-26Mybatis一级缓存资料详解与实战教程
- 2024-11-26Mybatis一级缓存资料详解:新手快速入门
- 2024-11-26SpringBoot3+JDK17搭建后端资料详尽教程
- 2024-11-26Springboot单体架构搭建资料:新手入门教程
- 2024-11-26Springboot单体架构搭建资料详解与实战教程
- 2024-11-26Springboot框架资料:新手入门教程
- 2024-11-26Springboot企业级开发资料入门教程
- 2024-11-26SpringBoot企业级开发资料详解与实战教程
- 2024-11-26Springboot微服务资料:新手入门全攻略