测试结果:
文章插图
2.2.2 基于集合
//基于集合List<String> nameList = Arrays.asList("Lilei","Hanmeinei","lisi","zhangsan","xiaolong","xiaohu");//通过集合对象的stream方法nameList.stream().map(name -> name.toLowerCase()).forEach(System.out::println);
测试结果:文章插图
2.3 流的中间操作2.3.1 筛选和切片2.3.1.0 数据准备2.3.1.0.1bean
//小说实体@Data@Builder@NoArgsConstructor@AllArgsConstructorpublic class Story {// 编号private Integer id;// 书名private String name;// 作者private String author;// 价格private Double price;// 章节private Integer sections;// 分类private String category;}
2.3.1.0.2 StoryUtil//小说工具类public class StoryUtil {public static List<Story> stories = new ArrayList<>();static {stories.add(Story.builder().id(101).name("斗破苍穹").author("zhangsan").price(109.9).sections(1202).category("玄幻").build());stories.add(Story.builder().id(201).name("斗罗大陆").author("lisi").price(88.9).sections(999).category("科幻").build());stories.add(Story.builder().id(301).name("凡人修仙传").author("wangwu").price(77.9).sections(1303).category("武侠").build());stories.add(Story.builder().id(401).name("圣墟").author("zhuliu").price(121.9).sections(1404).category("玄幻").build());stories.add(Story.builder().id(501).name("吞噬星空").author("sunqi").price(135.9).sections(996).category("历史").build());stories.add(Story.builder().id(601).name("完美世界").author("zhaoba").price(66.9).sections(999).category("玄幻").build());stories.add(Story.builder().id(701).name("大王饶命").author("qianjiu").price(135.9).sections(997).category("玄幻").build());stories.add(Story.builder().id(801).name("大奉打更人").author("zhoushi").price(133.9).sections(1606).category("军事").build());}}
2.3.1.1筛选:filter//筛选: filter,相当于数据库中的where条件log.info("-------------- 筛选: filter ----------------");//查看小说集合中,价格大于100块的所有小说StoryUtil.stories.stream().filter(story -> story.getPrice() > 100).forEach(System.out::println);//练习:查看小说集合中,所有章节数大于1000且作者中包含n的小说log.info("\n------- 查看小说集合中,所有章节数大于1000且作者中包含n的小说 ---------");StoryUtil.stories.stream().filter(story -> story.getSections() > 1000 && story.getAuthor().contains("n") ).forEach(System.out::println);
测试结果1:文章插图
测试结果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);
经验总结扩展阅读
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 2023年农历八月廿五宜养花吗 2023年10月9日适合养花吗
- 2023年农历八月廿五宜打农药吗 2023年10月9日是打农药吉日吗
- 2023年10月9日适合消灭害虫吗 2023年农历八月廿五宜消灭害虫吗
- 2023年农历八月廿五宜画画吗 2023年10月9日画画吉日一览表
- 2023年农历八月廿五砍树吉日 2023年10月9日是砍树的黄道吉日吗
- 2023年农历八月廿五买猫吉日 2023年10月9日买猫吉日一览表
- 2023年2月9日五行穿衣颜色 2023年每日五行穿衣搭配对照表
- 2023年10月9日是买鸡吉日吗 2023年农历八月廿五买鸡吉日
- 2023年10月9日买鸭好吗 2023年农历八月廿五买鸭吉日
- 2023年农历八月廿五买牛吉日 2023年10月9日是买牛吉日吗