Java知识点–集合的操作

1.使用Predicate操作集合

Java8为Collection集合新增了一个removeIf(Predicate filter)方法,该方法将会批量的删除符合filter条件的所有元素。(注:Predicate 是一个函数式接口)

import java.util.HashSet;public class test01 {public static void main(String[] args) {HashSet<String> hashSet = new HashSet<String>();hashSet.add("吉安娜");hashSet.add("古尔丹");hashSet.add("阿尔萨斯");hashSet.add("巫妖王");hashSet.removeIf(filter->((String)filter).length()==3);System.out.println(hashSet);}
}

我们还可以由此判断出现的次数

import java.util.Collection;
import java.util.HashSet;
import java.util.function.Predicate;public class test02 {public static int calAll(Collection<String> collection,Predicate<String> predicate) {int count=0;for(var ele:collection) {if(predicate.test(ele)) {count++;}}return count;}public static void main(String[] args) {HashSet<String> hashSet = new HashSet<String>();hashSet.add("吉安娜");hashSet.add("古尔丹");hashSet.add("阿尔萨斯");hashSet.add("巫妖王");hashSet.add("DK冰霜女巫吉安娜");hashSet.add("火焰女巫吉安娜");hashSet.add("DK鲜血掠夺者古尔丹");System.out.println(calAll(hashSet, ele->((String)ele).contains("吉安娜")));System.out.println(calAll(hashSet, ele->((String)ele).startsWith("DK")));System.out.println(calAll(hashSet, ele->((String)ele).length()>4));       }
}

2.使用Stream操作集合
Java8还新增了Stream,IntStream,LongStream,DoubleStream等流形式的API,这些API代表chuanxing支持多个支持串行和并行的操作

使用步骤:
1.使用Stream或XxxStream的builder()类方法创建该Stream对应的Builder
2.重复调用Builder的add()方法向流中添加多个元素
3.调用Builder的build()方法来获取对应的Stream
4.调用Stream的聚集方法

import java.util.stream.IntStream;public class test03 {public static void main(String[] args) {IntStream is=IntStream.builder().add(20).add(30).add(40).add(10).add(-50).build();
//      System.out.println(is.max().getAsInt());
//      System.out.println(is.sum());
//      System.out.println(is.allMatch(ele->Math.pow(ele, 2)>240));
//      System.out.println(is.anyMatch(ele->ele>10));var newStream=is.map(ele->2*ele+1);newStream.forEach(System.out::println);}
}

注意:只能运行其中的一行代码
Java还支持Collection的stream()转换

import java.util.HashSet;public class test04 {public static void main(String[] args) {HashSet<String> hashSet = new HashSet<String>();hashSet.add("吉安娜");hashSet.add("古尔丹");hashSet.add("阿尔萨斯");hashSet.add("巫妖王");System.out.println(hashSet.stream().allMatch(ele->((String)ele).startsWith("吉")));System.out.println(hashSet.stream().anyMatch(ele->((String)ele).length()>3));hashSet.stream().mapToInt(ele->((String)ele).length()).forEach(ele->System.out.println("元素的长度为"+ele));}
}

Java知识点--集合的操作相关推荐

  1. android list集合遍历,Java list集合遍历操作遇到的问题

    Java程序员在使用java list集合遍历操作时经常会遇到一些问题,遇到问题该如何解决,想必一些新手也是非常极手,在此,小编给大家汇总了一些java list集合遍历操作常见的问题,给大家做详细分 ...

  2. java对集合的操作_Java中对List集合的常用操作

    目录: list中添加,获取,删除元素: list中是否包含某个元素: list中根据索引将元素数值改变(替换): list中查看(判断)元素的索引: 根据元素索引位置进行的判断: 利用list中索引 ...

  3. Java知识点04——集合(Set、List、Queue、Map、Collection和Iterator、Collections工具类)

    Java知识点04--集合(Set.List.Queue.Map.Collection.Iterator.Collections工具类) 一.集合 1.1 集合概述 二.Collection 2.1 ...

  4. java链表集合_Java底层基于链表实现集合和映射--集合Set操作详解

    本文实例讲述了Java底层基于链表实现集合和映射--集合Set操作.分享给大家供大家参考,具体如下: 在Java底层基于二叉搜索树实现集合和映射中我们实现了底层基于二叉搜索树的集合,本节就底层如何基于 ...

  5. java基础----集合操作---实例----List集合的初始化

    文章内容:最近使用LeapMotion进行软件开发时,使用到了java API---->List集合,使用过程中遇到了一些小bug,特写此博客记录相关心得. 程序编写背景:使用leapMotio ...

  6. 给Java新手的一些建议——Java知识点归纳(Java基础部分)

    写这篇文章的目的是想总结一下自己这么多年来使用java的一些心得体会,主要是和一些java基础知识点相关的,所以也希望能分享给刚刚入门的Java程序员和打算入Java开发这个行当的准新手们,希望可以给 ...

  7. Java知识点总结(Java容器-EnumSet)

    Java知识点总结(Java容器-EnumSet) @(Java知识点总结)[Java, Java容器, JavaCollection, JavaSet] EnumSet EnumSet是一个专为枚举 ...

  8. 【Java】集合+I/O流+多线程の练习题+面试题

    一. Collection Collection 和 Collections的区别 答:Collection是集合类的上级接口,继承与他的接口主要有Set 和List. Collections是针对集 ...

  9. Java中使用Jedis操作Redis,java初级面试笔试题

    写在最前面,我总结出了很多互联网公司的面试题及答案,并整理成了文档,以及各种学习的进阶学习资料,免费分享给大家.扫码加微信好友进[程序员面试学习交流群],免费领取.也欢迎各位一起在群里探讨技术. 参考 ...

最新文章

  1. ML之预测:玩转2018世界杯—采用机器学习预测小组赛、十六比赛、四决赛、半决赛、决赛以及世界杯总冠军的各个队伍
  2. Windows XP文件夹右键属性没有“安全”选项卡的解决
  3. My favorite books
  4. Centos 7初始化脚本
  5. leetcode 【 Sort List 】 python 实现
  6. 统一沟通-技巧-7-Lync 2010-配置信息-EWS未部署
  7. 中国移动公布2019年智能家庭网关集采结果:华为、中兴中标
  8. spring mysql 多数据源_spring框架学习【多数据源配置】
  9. Redis在项目中的使用及性能测试
  10. 问题007:JDK版本与JRE版本不同导致java.exe执行类文件错误 java.lang.UnsupportedClassVersionError错误...
  11. 【OpenCV入门指南】第三篇Canny边缘检测
  12. 华北科技计算机组成原理,华北科技学院—《计算机组成原理》设计性实验报告.doc...
  13. HTML简单的网页代码编写
  14. 微信小程序 图片处理的几个样式
  15. 一个很有意思的熊猫免疫器
  16. 四位共阳极数码管显示函数_求各位大神指正,四位一体共阳极数码管数字钟程序,仿真能运行,实物就只显8个8,不动...
  17. Java包的简单理解
  18. 【沽泡学院07】基于ElasticSearch搜索附近的人
  19. 打造属于自己的TensorFlow(一)之SimpleFlow-计算图与前向传播
  20. Idea配置自动导包

热门文章

  1. 2D车道线检测算法总结
  2. Spring发展史! 和那些巨头的爱恨情仇!
  3. 文科妹学 GitHub 简易教程
  4. CamanJS 一个超好用的图像编辑器(附带跨域问题解决)
  5. 公务员考试知识点总结_判断
  6. statsmodels笔记:绘制ACF和PACF
  7. 【PyQt】自适应背景图片
  8. 【CSS】相邻兄弟选择器
  9. OpenCV对视频的处理操作
  10. HTML 链接 - href