当前位置: 首页 > news >正文

Stream流中.filter和.map的用法区别

.filter和.map的区别:1.filter和map都是中间操作,返回的都是流;2.filter返回的流中元素个数不超过原始流中元素个数;3.map返回的流中元素个数与原始流中元素个数相等 这句话说的对吗

2. filter元素个数 ≤ 原始流

     2.1练习例子

List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);long originalCount = numbers.stream().count();  // 5
long filteredCount = numbers.stream().filter(n -> n % 2 == 0)  // 只保留偶数.count();  // 2System.out.println("原始个数: " + originalCount);  // 5
System.out.println("过滤后个数: " + filteredCount); // 2

map元素个数 = 原始流

    2.2练习例子
List<String> list = Arrays.asList("apple", "banana", "cherry");long originalCount = list.stream().count();  // 3
long mappedCount = list.stream().map(String::toUpperCase)  // 每个元素都被转换.map(s -> s + "!")         // 仍然是1对1转换.count();  // 3System.out.println("原始个数: " + originalCount);  // 3
System.out.println("转换后个数: " + mappedCount);   // 3

3.IDEA练习

//1.stream流中集合的创建List<String> list  = Arrays.asList("a","b","c");Stream<String> stream  = list.stream();   //单行流Stream<String> parallerStream = list.parallelStream();  //并行流// .filter和.map的区别:// 1.filter和map都是中间操作,返回的都是流;// 2.filter返回的流中元素个数不超过原始流中元素个数;3.map返回的流中元素个数与原始流中元素个数相等//流的中间操作  --过滤操作filter//括号中的过滤条件使用的是Lambda表达式写法List<String> result = list.stream().filter(s -> s.startsWith("a")).toList();//流的中间操作  --映射转换map,既可以使用方法引用写法,也可以使用Lambda表达式写法//括号中的过滤条件使用的的是方法引用写法,这个写法也可以写成下面的形式List<String> upperCase = list.stream().map(String::toUpperCase).toList();//括号中的两种写法,idea建议写方法引用,使用lambda表达式会报黄线Stream<String> stringStream = list.stream().map(s -> s.toUpperCase());//练习例子List<String> fruits = Arrays.asList("apple", "banana", "avocado", "apricot", "orange");//组合使用filter和mapList<String> test1 = fruits.stream().filter(s -> s.startsWith("a"))   //过滤以a开头的.map(String::toUpperCase)
//                .collect(Collectors.toList());   本行的写法idea建议换成下面的形式.toList();List<String> test2 = fruits.stream().filter(s -> s.length() > 5).map(String::toUpperCase)    //lambda.map(s -> "fruit:" + s)  //lambda.toList();//练习例子  都是中间操作,返回流练习List<String> test3 = Arrays.asList("a1", "a2", "b1", "b2");Stream<String> filterStream = test3.stream().filter(s -> s.startsWith("a"));Stream<String> mapStream = test3.stream().map(String::toUpperCase);//他们返回的都是stream对象,需要终止操作才能得到结果List<String> result1 = filterStream.toList();List<String> result2 = mapStream.toList();
http://www.dtcms.com/a/528541.html

相关文章:

  • 在万网上域名了怎么做网站网页设计与制作工资多少
  • 哈尔滨网站建设制作费用百度推广销售
  • FireFox如何滚动截屏?
  • 【Linux】Tomcat基本配置
  • 网站建设的系统分析有哪些好的建站平台
  • 【大模型推理】ScheduleBatch 学习
  • 【经典书籍】C++ Primer 第19章特殊工具与技术精华讲解
  • JAVA面试汇总(二)多线程(五)
  • 怎样设计网站模板网站 建设初步
  • 网站建设所需的硬件设备网站运营工作是干什么的
  • 网站中的表格wordpress后台404
  • 从零开始:C++ 多进程 TCP 服务器实战(续篇)
  • 阮一峰《TypeScript 教程》学习笔记——装饰器
  • 一、基础预训练模型与能力
  • 上海网站建设选缘魁-企查公司简介模板文案
  • 重磅新书 | 《链改2.0:从数字资产到RWA》
  • 【IOS开发】SwiftUI + OpenCV实现图片的简单处理(一)
  • 【Docker】docker run
  • 成都网站建设 Vr便民网
  • LLama3架构原理浅浅学学
  • docker存储管理
  • Transformer架构发展历史
  • 【AI原生架构:数据架构】9、从打破数据孤岛到价值升维,企业数据资产变现全流程
  • Kubernetes 上的 GitLab + ArgoCD 实践(二):使用自建 GitLab Runner 完善 CI 流程
  • 网站如何查看浏览量2008建设网站
  • 开学季技术指南:高效知识梳理与实战经验分享
  • 网站推广计划渠道国外做美食视频网站有哪些
  • 金蝶K3老单 工艺路线维护特殊字符(使用模块返回值的方法)
  • 信贷控制范围
  • 乐陵网站优化最简单的网站设计