范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

Java8stream处理List交集差集去重等

  Java8的新特性——Stream常用于处理集合,它不会改变集合原有的结构,优点是Stream的代码会比用for循环处理简洁不少
  本文主要说的是:获取两个List集合的 交集 、差集 、去重 以及list.stream()构造方法 一、两个集合的交集
  例如:找出两个班 名字相同的学生 public class Student {    private String studentNo;  //名字     private String studentName;    public Student(String studentNo, String studentName) {         this.studentNo = studentNo;         this.studentName = studentName;     }    //对象的比较涉及到equals()的重写, 这里仅仅比较studentName是否相同  @Override     public boolean equals(Object o) {         if (this == o) return true;         if (!(o instanceof Student)) return false;         Student student = (Student) o;         return studentName.equals(student.getStudentName());     }    // set()和get()方法均省略.. }
  学生是个对象实例,我们要比较的是名字是否相同,仅需要重写equals()方法即可 找交集@Test public void test(){  // 1班的学生  List class01=new ArrayList<>();     class01.add(new Student("1","小明"));     class01.add(new Student("2","赵铁柱"));     // 2班的学生  List class02=new ArrayList<>();     class02.add(new Student("1","赵铁柱"));   // 找两个班名字相同的同学(取交集),比较用的是重写的equals()  List sameName=class01.stream().filter(class02::contains).collect(Collectors.toList());  sameName.stream().forEach(student->System.out.println(student.getStudentName()+" "));    //output : 赵铁柱 }
  需要注意的是: class01.stream().filter(class02::contains) 的filter() 会 保留 符合表达式的结果,这里面表达式的内容是 2班和1班名字相同的同学forEach是遍历集合,代替了for循环,代码更为简洁 collect(Collectors.toList()) 、collect(Collectors.toSet()) 、collect(Collectors.toMap()) 将Stream的数据归集到List、Map、Set等集合二、差集
  输出结果:b c @Test public void test(){  List list01=Arrays.asList("a","b","c");     List list02=Arrays.asList("a","e","f");    //list01和list02的差集, 仅保留了 b,c     List result=list01.stream().filter(word->!list02.contains(word)).collect(Collectors.toList());     result.stream().forEach(word->System.out.print(word+" ")); }
  表达式  list01.stream().filter(word-> ! list02.contains(word)) ,要找的元素,它的特征是只存在list01中,但不存在list02中,! list02.contains(word) 就是说这个元素不在list02中三、去重
  输出结果:a b c List list=Arrays.asList("a","b","c","a"); List distinct=list.stream().distinct().collect(Collectors.toList()); distinct.stream().forEach(word->System.out.print(word+" "));
  删除了重复的字符"a" 四、list.stream()构造方法
  可能有朋友对 list.stream() 有些疑惑,它是个Stream的构造方法,Stream的构造方法如下:用集合创建Stream List list=Arrays.asList( "a" ,"b" ,"c" );
  //创建顺序流
  Stream stream=list.stream();
  //创建并行流
  StreamparallelStream=list.parallelStream();用数组 Arrays.stream(array) 创建Streamint [] array={1 ,2 ,3 ,4 ,5 };
  IntStream stream=Arrays.stream(array);用 Stream of(T... values) 创建StreamStream stream=Stream.of( 1 ,2 ,3 ,4 ,5 );
  常用的是上面这三种,另外还有 iterate() ,generate() ,后者是生成随机数,两个构造方法均产生无限流(即元素的个数是无限的)。
  如果要求数量有限,则需要用 limit 来限制,如: Stream stream=Stream.iterate(0,num->num+3).limit(10)
  打印了 [0, 3, 6, 9, 12, 15, 18, 21, 24, 27]

美日包揽中国70市场,华为助力打破垄断,国产打印机再迎突破可能大多数人不会想到,平时公司所使用的打印机,长期被外国企业所垄断,一度占据国内70的市场份额,如今华为已经针对这类产品进行研发并销售,未来国产打印机会彻底摆脱国外企业的垄断吗?美华为折叠屏手机玩王者荣耀时视距会翻倍吗?华为2月24日发布了一款创世纪的手机MATE。X。可以说是让全世界重新认识了中国制造。折叠时是手机大小,打开就成了平板,而且从效果图来看,没有任何连接缝隙,非常华丽。当然,价格也很同样是女儿,姚安娜和孟晚舟,华为商标却选姚安娜,这是为什么?俗话有一句,爹疼满崽,爷疼长孙,别人家的事你操个锤子心原因就一个,华为实际上到现在为止,还是任正非说了算呗!任正非虽然现在在华为连个董事长的头衔都没有,但实际上任正非才是华为真正藏手里有10万,想回农村老家创业,适合做点什么?不想打工了,手里有10万,想回农村老家创业,却不知道做什么,请各位指点迷津,谢谢!针对这个问题,愿意与你分享一下个人看法。打工积攒了10万元,对于一个来自农村的人来说,非常不容易。高手在民间,农村大叔自造太阳能汽车!加水就能跑现在的科技已经足够发达,汽车却还没有发展到顶峰,无人驾驶技术一直在研发,另一个就是新能源的问题。我们都知道,现在国家大力支持新能源的发展,燃油车大量的存在影响空气质量,对环境带来了亚马逊爆款,厨房沥水槽美国专利侵权预警亚马逊产品专利精准查询欧美专利申请维权杜绝专利侵权风险,为您的产品保驾护航今天在浏览亚马逊的时候,看到一款厨房沥水槽,它是美亚站的AmazonsChoiceinDishRacks,今年双十一,电商销量战报为何静悄悄?谁会成为今后的电商老大?双11两家大平台成交额出炉天猫5403亿,京东3491亿。我们看看近五年天猫的成交数据,2020年,4982亿。2019年,2684亿。2018年,2135亿。2017年,16823分钟了解什么是比特币什么是比特币?有人把它当成虚拟货币,也有人叫它是数字黄金,甚至是未来黄金的替代品,你也可以把它当成非常受人们欢迎的投资产品。现在在欧易OKEx上比特币单价超过六万五千美元,折合人民双十一坑惨中国人,你知道电商平台都有哪些套路吗?趣谈八卦注意了,双十一其实已经把你坑惨了。每年的双十一都有超过5亿国人买买买,去年双十一销售额超过8600亿,但这些钱里面很多都是被套路的。不止是双十一,其他购物节都有这样的套路。iPhone14Pro高清渲染图,苹果终于砍掉刘海,比iPhone13更漂亮文谛林审核子扬校对知秋虽然iPhone13系列加量不加价,相比往年的机型在性价比方面有高度提升,但仍然有不少消费者吐槽苹果公司挤牙膏。当然,这次挤牙膏仅仅局限于某些方面,例如外观设京东方成真国产之光?2021年三个季度卖了4000万块AMOLED屏幕国产京东方通过为手机厂商供应液晶面板而在全球火爆。该公司过去在LCD面板出货量方面仅仅排在LG之后,但去年,它击败LG成为全球最大的LCD制造商。虽然这很可能是因为LG已将重点转移
干货!智能工厂相关的六大解决方案,你知道几个?在智能制造的行业大背景下,实现智慧工厂的最终目标已经成为了众多制造企业发展的共同方向。通过引进更多智能制造装备,来实现生产自动化数字化智能化,也成为了许多大型制造企业提高经济效益节将65W闪充和素皮打到千元,realmeQ2Pro评测当有人问你,他想换一台价格1K,性能够用,颜值要高,各方面还要表现超均衡的手机,你会让他选择什么?至少过去我会说加钱。放眼目前1K售价的手机,似乎真的没有特别值得选择的产品,但就在与官网配色不同,蓝色款iPhone12被吐槽,现已多次反转iPhone12系列中共有五款配色,分别是白色黑色红色蓝色以及淡绿色,其中新增的配色就是蓝色。而iPhone12的蓝色与iPhone12Pro的海军蓝还不太一样,从现在的真机图来看还会为信仰买单?索尼Xperia1II5II发布年初发布,年末上市索尼移动今天终于带来了2020年旗舰机型索尼Xperia1II与Xperia5II。两款新品秉承为速度而生理念,融合了索尼旗下影像显示和音频等诸多黑科技和工业设计小米高端净水器小米净水器H600G,双出水新型复合滤芯2015年7月16日,小米发布第一款净水器产品,5年之后,小米已成为净水器行业线上销量第一名。10月21日,小米又将推出一款全新升级版净水产品小米净水器H600G。这款产品同时具备12。5万转电机的全面清洁实力派,米家无线吸尘器K10体验大部分人家中的清扫组合应该是扫地机器人无线吸尘器湿拖器的三巨头组合,我现在家中主要就是靠无线吸尘器和湿拖器来清洁地面,问题是每次都要先吸后拖,效率太低,而我前几年买的无线吸尘器性能12。5万转的实力派,米家无线吸尘器K10正式发布吸尘器作为智能清洁工具已经从昔日的冷门家电逐渐成为人们品质生活的标配,在吸尘器市场迅猛发展而同时进口品牌一枝独秀的局面也被众多国产品牌的崛起而打破,与此同时,消费者在选购吸尘器产品小米发布三款净水器新品,全面覆盖高中入门三个档位作为智能生活的引领者,小米在智能家电领域的优势仍在持续扩大,成为了千家万户首选的智能品牌。躺着就能控制家电,让家居环境达到更舒服的状态,让家务变得更简单轻松,已经逐渐成为用户更懒的和国产手机对比夜景拍照,iPhone12还需努力今年iPhone12在摄像头的表现提升方面,我个人觉得没有很明显的突破,硬件上依旧是熟悉的标准真超广角的搭配,虽然相比前代后置摄像头的光圈稍微进行了提升,镜片组提升到7枚镜片,另外2020工博会落幕,智能制造的最新技术到什么程度了?2020年9月19日,为期5天的第22届中国国际工业博览会19日在国家会展中心(上海)圆满落幕!本届工博会以智能互联赋能产业新发展为主题,共设9大专业展,吸引了来自全球22个国家和前沿技术,产业方向,华南工博会与你共享华南工业博览会,将于10月1215日在深圳会展中心(新馆)举办,此次展会由汉诺威工博会和中国工博会联合打造,包含工业机器人数字工厂机器视觉信息技术激光技术金属加工等专题展会,信息同