java Stream-初体验:传统方式 vs Stream方式 作者:马育民 • 2023-04-08 11:36 • 阅读:10062 # 介绍 通过下面案例,快速体验 传统方式 与 Stream 方式 的区别,以及 Stream 方式 的好处 # 问题 有下面集合: ``` List list = new ArrayList<>(); Collections.addAll(list,"李雷", "韩梅梅", "lucy", "lisi","李小四"); ``` 过滤出 “李姓” 的数据 ### 传统方式 ``` List list = new ArrayList<>(); Collections.addAll(list,"李雷", "韩梅梅", "lucy", "lisi","李小四"); List resList = new ArrayList<>(); for(String item : list){ if(item.startsWith("李")){ // 过滤姓李的数据 resList.add(item); // 将其放入到新List中 } } System.out.println(resList); ``` **优点:** - 传统编码方式,易于阅读理解 **缺点:** - 代码多 - 效率低 - 不符合现代开发语言 **类比:**相当于传统功能手机,该有的功能都有,但不好用,不符合现代人使用智能手机习惯 ### Stream方式 ``` List list = new ArrayList<>(); Collections.addAll(list,"李雷", "韩梅梅", "lucy", "lisi","李小四"); // 通过一行代码就能实现,而且代码简单高效 List resList = list.stream() .filter(item -> item.startsWith("李")) // 过滤姓李的数据 .collect(Collectors.toList()); // 将符合条件的数据,收集到List中 System.out.println(resList); ``` **优点:** - 通过一行代码就能实现 - 代码简单高效 **缺点:** - 由于使用 lambda 表达式,可读性差 原文出处:http://malaoshi.top/show_1IX5HP1pJ1I6.html