文章插图
测试结果2:
文章插图
2.3.1.2 截断:limit
//截断: limit 相当于数据库的limit条数log.info("\n---------- 截断: limit ---------");//查询小说集合,所有价格大于100的前三本StoryUtil.stories.stream().filter(story -> story.getPrice() >100).limit(3).forEach(System.out::println);
测试结果:文章插图
2.3.1.3 跳过:skip
//跳过:skip,相当于数据库跳过数据条数log.info("\n------------- 跳过:skip-----------------");//查询小说集合,所有价格大于100的前三本,后的所有小说log.info("\n------------- 查询小说集合,所有价格大于100的前三本,后的所有小说-----------------");StoryUtil.stories.stream().filter(story -> story.getPrice() >100).skip(3).forEach(System.out::println);
测试结果:文章插图
2.3.1.4 去重:distinct
//去重:distinct,相当于数据库中的去重,了解log.info("\n------------- 去重:distinct,相当于数据库中的去重 -----------------");Stream.of(22,33,55,11,66,33,55,11,55).distinct().forEach(System.out::println);
测试结果:文章插图
2.3.2映射和排序2.3.2.1 映射:map
//已知姓名集合List<String> nameList = Arrays.asList("Lilei","Hanmeinei","lisi","zhangsan","xiaolong","xiaohu");//映射:map,可以将流中发的元素进行转换或这提?。?会自动指定的规则作用到所有的元素上,并返回一个新的流log.info("-------------- 映射: map ----------------");//将姓名集合中 , 所有包含i的姓名,转换为大写并输出//nameList.stream().filter(name -> name.contains("i")).map(name -> name.toUpperCase()).forEach(System.out::println);nameList.stream().filter(name -> name.contains("i")).map(String::toUpperCase).forEach(System.out::println);
测试结果:文章插图
2.3.2.2映射:map输出单个属性
//将小说集合中,章节小于1000的作者转换为大写,输出作者log.info("\n-------------- 将小说集合中,章节小于1000的作者转换为大写,输出作者 --------------");//StoryUtil.stories.stream().filter(story -> story.getSections() < 1000).map(story -> story.getAuthor()).map(string -> string.toUpperCase()).forEach(System.out::println);StoryUtil.stories.stream().filter(story -> story.getSections() < 1000).map(Story::getAuthor).map(string -> string.toUpperCase()).forEach(System.out::println);
测试结果:文章插图
2.3.2.3 映射: mapToInt
//获取所有小说的书名长度log.info("\n-------------- 获取所有小说的书名长度 --------------");// StoryUtil.stories.stream().map(story -> story.getName().length()).forEach(System.out::println);StoryUtil.stories.stream().mapToInt(story -> story.getName().length()).forEach(System.out::println);
测试结果:文章插图
2.3.2.4 消费:peek
//消费:peek,将小说价格增加50元后,价格大于130的log.info("\n-------------- 消费:peek,将小说价格增加50元后,价格大于130的 --------------");StoryUtil.stories.stream().peek(story -> story.setPrice(story.getPrice()+50)).filter(story -> story.getPrice()>130).forEach(System.out::println);
测试结果:文章插图
2.3.2.5 排序:sorted
//排序:sorted ,给姓名排序log.info("\n -------------- 排序:sorted ,给姓名排序 --------------");nameList.stream().sorted().forEach(System.out::println);
文章插图
2.3.2.6自定义排序规则
//自定义排序,先按照价格排序,价格相同,按照章节排序log.info("\n--------- 自定义排序,先按照价格排序,价格相同,按照章节排序 ---------");StoryUtil.stories.stream().sorted((s1,s2)->{int sortPrice = Double.compare(s1.getPrice(),s2.getPrice());if(sortPrice == 0){return Double.compare(s1.getSections(),s2.getSections());}return sortPrice;}).forEach(System.out::println);
推荐阅读
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 四 SpringBoot - 整合Mybatis,逆向工程,JPA
- 国窖1573和五粮液哪个档次高_国窖1573和五粮液哪个好喝
- 一篇文章带你掌握主流办公框架——SpringBoot
- 上海奢华五星级酒店——静安瑞吉ST REGIS 首先简单介绍一下瑞吉的的品牌背景
- 神舟5号资料 神舟五号资料
- 第五人格万圣节返场哪些皮肤
- 含具体案例 Java8新特性之Stream流
- 三 SpringBoot - Slf4j+logback 日志,异步请求,定时任务
- 五 微软出品自动化神器【Playwright+Java】系列 之常见点击事件操作
- 奥拉星手游石板解谜第五层怎么通关