栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java 集合 - 聚合操作 遍历 + 删除

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java 集合 - 聚合操作 遍历 + 删除

集合collections

最近看到官方文档,写下记录。
1、简介:集合(其实也叫容器)只是将多个元素组成一个单元对象。通常用于存储、检索、操作和聚合。
2、集合框架包括:

  • 接口:Map,Collection,Deque等等
  • 实现:ArrayList、HashMap等等
  • 算法:例如搜索和排序

插入一张图片,来说明一下collection框架粗略的层次结构:

  • Set— 不能包含重复元素的集合。
  • List— 有序集合(有时称为序列)。Lists 可以包含重复的元素。其实就是数组啦
  • Queue— 在处理之前用于保存多个元素的集合。队列通常但不一定以 FIFO(先进先出)方式对元素进行排序。
  • Deque— 在处理之前用于保存多个元素的集合。双端队列可以用作 FIFO(先进先出)和 LIFO(后进先出)。
  • Map— 将键映射到值的对象。键值对,大家一个很熟悉。

这里都没有仔细讲。具体自己baidu

今天重要讲聚合操作,也就是遍历,外加删除。 1、第一种方法:使用stream流
 public static void main(String[] args) {
        List list = new ArrayList<>();
        list.add("1");
        list.add("3");
        list.add("a");
        list.add("c");
        list.add("5");
        list.add("d");
        // 过滤出 "a" 元素
        list.stream().filter(e -> e.equals("a")).forEach(e -> System.out.println(e));
    }

结果是:

E:JDKbinjava.exe "-javaagent:E:idea2019IntelliJ IDEA 2020.1libidea_rt.jar=61258:E:idea2019IntelliJ IDEA 2020.1bin" -Dfile.encoding=UTF-8 -classpath E:JDKjrelibcharsets.jar;E:JDKjrelibdeploy.jar;E:JDKjrelibextaccess-bridge.jar;E:JDKjrelibextcldrdata.jar;E:JDKjrelibextdnsns.jar;E:JDKjrelibextjaccess.jar;E:JDKjrelibextjfxrt.jar;E:JDKjrelibextlocaledata.jar;E:JDKjrelibextnashorn.jar;E:JDKjrelibextsunec.jar;E:JDKjrelibextsunjce_provider.jar;E:JDKjrelibextsunmscapi.jar;E:JDKjrelibextsunpkcs11.jar;E:JDKjrelibextzipfs.jar;E:JDKjrelibjavaws.jar;E:JDKjrelibjce.jar;E:JDKjrelibjfr.jar;E:JDKjrelibjfxswt.jar;E:JDKjrelibjsse.jar;E:JDKjrelibmanagement-agent.jar;E:JDKjrelibplugin.jar;E:JDKjrelibresources.jar;E:JDKjrelibrt.jar;E:IDEA_projectofficialnetty-netty-4.1.77.Finalexampletargetclasses;E:Mavenrepositoryionettynetty-common4.1.77.Finalnetty-common-4.1.77.Final.jar;E:Mavenrepositoryionettynetty-buffer4.1.77.Finalnetty-buffer-4.1.77.Final.jar;E:Mavenrepositoryionettynetty-transport4.1.77.Finalnetty-transport-4.1.77.Final.jar;E:Mavenrepositoryionettynetty-resolver4.1.77.Finalnetty-resolver-4.1.77.Final.jar;E:Mavenrepositoryionettynetty-codec4.1.77.Finalnetty-codec-4.1.77.Final.jar;E:Mavenrepositoryionettynetty-handler4.1.77.Finalnetty-handler-4.1.77.Final.jar;E:Mavenrepositoryionettynetty-transport-sctp4.1.77.Finalnetty-transport-sctp-4.1.77.Final.jar;E:Mavenrepositoryionettynetty-handler-proxy4.1.77.Finalnetty-handler-proxy-4.1.77.Final.jar;E:Mavenrepositoryionettynetty-codec-http4.1.77.Finalnetty-codec-http-4.1.77.Final.jar;E:Mavenrepositoryionettynetty-codec-http24.1.77.Finalnetty-codec-http2-4.1.77.Final.jar;E:Mavenrepositoryionettynetty-codec-memcache4.1.77.Finalnetty-codec-memcache-4.1.77.Final.jar;E:Mavenrepositoryionettynetty-codec-redis4.1.77.Finalnetty-codec-redis-4.1.77.Final.jar;E:Mavenrepositoryionettynetty-codec-socks4.1.77.Finalnetty-codec-socks-4.1.77.Final.jar;E:Mavenrepositoryionettynetty-codec-stomp4.1.77.Finalnetty-codec-stomp-4.1.77.Final.jar;E:Mavenrepositoryionettynetty-codec-mqtt4.1.77.Finalnetty-codec-mqtt-4.1.77.Final.jar;E:Mavenrepositoryionettynetty-codec-haproxy4.1.77.Finalnetty-codec-haproxy-4.1.77.Final.jar;E:Mavenrepositoryionettynetty-codec-dns4.1.77.Finalnetty-codec-dns-4.1.77.Final.jar;E:Mavenrepositorycomgoogleprotobufprotobuf-java2.6.1protobuf-java-2.6.1.jar;E:Mavenrepositoryionettynetty-tcnative-boringssl-static2.0.52.Finalnetty-tcnative-boringssl-static-2.0.52.Final.jar;E:Mavenrepositoryionettynetty-tcnative-classes2.0.52.Finalnetty-tcnative-classes-2.0.52.Final.jar;E:Mavenrepositoryionettynetty-tcnative-boringssl-static2.0.52.Finalnetty-tcnative-boringssl-static-2.0.52.Final-linux-x86_64.jar;E:Mavenrepositoryionettynetty-tcnative-boringssl-static2.0.52.Finalnetty-tcnative-boringssl-static-2.0.52.Final-linux-aarch_64.jar;E:Mavenrepositoryionettynetty-tcnative-boringssl-static2.0.52.Finalnetty-tcnative-boringssl-static-2.0.52.Final-osx-x86_64.jar;E:Mavenrepositoryionettynetty-tcnative-boringssl-static2.0.52.Finalnetty-tcnative-boringssl-static-2.0.52.Final-osx-aarch_64.jar;E:Mavenrepositoryionettynetty-tcnative-boringssl-static2.0.52.Finalnetty-tcnative-boringssl-static-2.0.52.Final-windows-x86_64.jar;E:Mavenrepositoryorgconscryptconscrypt-openjdk-uber2.5.2conscrypt-openjdk-uber-2.5.2.jar;E:Mavenrepositorycomjcraftjzlib1.1.3jzlib-1.1.3.jar;E:Mavenrepositorycomyammermetricsmetrics-core2.2.0metrics-core-2.2.0.jar;E:Mavenrepositoryorgslf4jslf4j-api1.7.30slf4j-api-1.7.30.jar;E:Mavenrepositoryionettynetty-transport-udt4.1.77.Finalnetty-transport-udt-4.1.77.Final.jar;E:Mavenrepositorycombarchartudtbarchart-udt-bundle2.3.0barchart-udt-bundle-2.3.0.jar;E:Mavenrepositoryionettynetty-transport-rxtx4.1.77.Finalnetty-transport-rxtx-4.1.77.Final.jar;E:Mavenrepositoryorgrxtxrxtx2.1.7rxtx-2.1.7.jar;E:Mavenrepositorychqoslogbacklogback-classic1.2.3logback-classic-1.2.3.jar;E:Mavenrepositorychqoslogbacklogback-core1.2.3logback-core-1.2.3.jar;E:Mavenrepositoryorgbouncycastlebcpkix-jdk15on1.69bcpkix-jdk15on-1.69.jar;E:Mavenrepositoryorgbouncycastlebcutil-jdk15on1.69bcutil-jdk15on-1.69.jar;E:Mavenrepositoryorgbouncycastlebcprov-jdk15on1.69bcprov-jdk15on-1.69.jar;E:Mavenrepositorycomsunactivationjavax.activation1.2.0javax.activation-1.2.0.jar io.netty.example.http.upload.HttpUploadServerHandler
a

Process finished with exit code 0

当然,将stream()换成parallelStream()也是一样的结果。

2、第二种肯定是for - each循环了
public static void main(String[] args) {
        List list = new ArrayList<>();
        list.add("1");
        list.add("3");
        list.add("a");
        list.add("c");
        list.add("5");
        list.add("d");
        for (String e : list){
            if (e.equals("a")){
                System.out.println(e);
            }
        }
    }

结果当然同上。其实,for - each 循环底层只是隐藏了迭代器iteractor。
####### 第三种就是iteractor迭代器了:

 public static void main(String[] args) {
        List list = new ArrayList<>();
        list.add("1");
        list.add("3");
        list.add("a");
        list.add("c");
        list.add("5");
        list.add("d");
        for (Iterator iterator = list.iterator(); iterator.hasNext();){
            if (iterator.next().equals("a")){
                iterator.remove();
            }
        }
        list.forEach(e -> System.out.println(e));
    }

结果:

1
3
c
5
d
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/959274.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号