首页 > 基础资料 博客日记
学习Java8中StreamAPI的笔记
2024-01-24 23:46:08基础资料围观494次
本篇文章分享学习Java8中StreamAPI的笔记,对你有帮助的话记得收藏一下,看Java资料网收获更多编程知识
本次笔记记录一下我自己学习Stream流的一个情况。
第一种:使用Stream流来代替增强for循环进行赋值:
这是使用增强for循环的写法:
public static void main(String[] args) { ArrayList<String> strings = new ArrayList<>(); strings.add("张三"); strings.add("李四"); strings.add("王五"); strings.stream().forEach(System.out::println); }
执行结果为:
第三个,使用Filter来进行简单的过滤
public class demmo { public static void main(String[] args) { ArrayList<String> strings = new ArrayList<>(); strings.add("张三"); strings.add("李四"); strings.add("王五"); strings.add("王二麻子"); strings.stream().filter(string->!string.equals("张三")).forEach(System.out::println); } }
执行结果为:
第三种:使用Stream流的filte和noneMatch来过实现滤多组数据的值(把两组List一个当作条件一个当作结果,A组里面含有B的(map结构是为了模拟实际业务中 key:value的情况,可以进行替换成为需要的数据)),实现复杂数据的对比。
public class demmo { public static void main(String[] args) { List<Map<String, String>> list1 = new ArrayList<>(); HashMap<String, String> stringStringHashMap1 = new HashMap<>(); stringStringHashMap1.put("name", "张三"); list1.add(stringStringHashMap1); HashMap<String, String> stringStringHashMap2 = new HashMap<>(); stringStringHashMap2.put("name", "王五"); list1.add(stringStringHashMap2); List<Map<String, String>> list2 = new ArrayList<>(); HashMap<String, String> stringStringHashMap3 = new HashMap<>(); stringStringHashMap3.put("name", "张三"); list2.add(stringStringHashMap3); List<Map<String,String>>newList= list1.stream().filter(map->list2.stream().noneMatch(obj->obj.get("name").equals(map.get("name")))).collect(Collectors.toList()); for (Map<String, String> ssmap : newList){ System.out.println(ssmap); } } }
执行结果为
去除了张三这个相同的值,只有王五这个值,这个还能继续扩展,自己发挥吧。
第四种,使用Stream流来进行截取,选择一串数据的前几个来进行显示。
public class demmo { public static void main(String[] args) { ArrayList<String> strings = new ArrayList<>(); strings.add("张三"); strings.add("李四"); strings.add("王五"); strings.add("王二麻子"); strings.stream().limit(2).forEach(System.out::println); } }
执行结果为:
文章来源:https://www.cnblogs.com/brolab/p/17986163
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:jacktools123@163.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:jacktools123@163.com进行投诉反馈,一经查实,立即删除!
标签:
相关文章
最新发布
- springboot~3.x项目中使用集成测试
- Java测试类、工具类与JavaBean对比解析
- SpringBoot-日志
- springboot~http2的支持
- 解疑释惑 - 日志体系之 slf4j + logback 组合(一)
- Web server failed to start. Port 8080 was already in use. 端口被占用
- Springboot 项目配置多数据源
- 伙伴匹配系统(移动端 H5 网站(APP 风格)基于Spring Boot 后端 + Vue3 - 05
- 剑指offer-23、搜索⼆叉树的后序遍历序列
- 一个表示金额的数字是 100000000L,这是多少米?