Java List和Map遍历的方法,forEach()的使用

注意:

不要在foreach循环里进行元素的remove/add操作。remove元素请使用Iterator方式,如果并发操作,需要对Iterator对象加锁。

Java 8之前

List

        // List
        List list = new ArrayList<>(6);
        list.add("1");
        list.add("2");
        for (Iterator iterator = list.iterator();iterator.hasNext();){
            String item = iterator.next();
            System.out.println(item);
            if (删除元素的条件) {
                iterator.remove();
            }
        }

Map

规范:

使用 entrySet遍历 Map类集合 KV,而不是 keySet方式进行遍历。

说明:keySet 其实是遍历了2 次,一次是转为 Iterator 对象,另一次是从 hashMap 中取出key所对应的 value。而 entrySet 只是遍历了一次就把 key和value都放到了entry中,效率更高。如果是 JDK8,使用 Map.forEach 方法。

正例:values()返回的是 V值集合,是一个 list 集合对象;keySet()返回的是K 值集合,是一个 Set 集合对 象;entrySet()返回的是K-V值组合集合。

        // Map 使用 entrySet
        HashMap map = new HashMap<>(6);
        map.put("a",1);
        map.put("b",2);

        for (Map.Entry entry : map.entrySet()){
            System.out.println("key:"+entry.getKey()+"\tvalue:"+entry.getValue());
        }

Java 8 之后

使用forEach() + Lambda 表达式

        // List
        List list = new ArrayList<>(6);
        list.add("1");
        list.add("2");
        list.forEach(v -> System.out.println(v));

        // Map
        // Map
        HashMap map = new HashMap<>(6);
        map.put("a",1);
        map.put("b",2);

        map.forEach((k,v) -> {
            System.out.println("key:"+k+"\tvalue:"+v);
        });

使用forEach + Lambda表达式之后,代码量减少了很多。

更多文章:www.ipooli.com

扫码关注公众号《ipoo》

Java List和Map遍历的方法,forEach()的使用

Original: https://www.cnblogs.com/ipoo/p/13306952.html
Author: ipoo
Title: Java List和Map遍历的方法,forEach()的使用

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/582202/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • keepalived+nginx高可用集群配置(centos)

    1、简介 Keepalived是一个免费开源的,用C编写的类似于layer3, 4 & 7交换机制软件,具备我们平时说的第3层、第4层和第7层交换机的功能。主要提供l oa…

    Linux 2023年6月6日
    089
  • 附001.Python多版本环境管理

    一 环境背景 由于Python的版本过多,且不同版本之间差异性较大。同时又因系统底层需要调用当前版本Python,所以不能随意变更当前系统Python版本。因此,在多版本共存的情况…

    Linux 2023年6月7日
    070
  • MySQL安装和配置

    一、关闭防火墙并安装epel源 1、关闭selinux ①修改selinux的配置文件 [root@localhost ~]# vim /etc/selinux/config SE…

    Linux 2023年6月7日
    085
  • Xftp 远程工具的使用与jdk 安装(Linux最小安装版)

    Xftp 的安装使用 下载链接:Xftp7 – Dominic 的蓝奏云分享 安装和注册步骤可参考 Xshell:Linux 最小安装与 Xshell 远程工具的使用 …

    Linux 2023年6月8日
    0109
  • 项目开发流程与开发模式

    企业项目开发流程 商城 1.1 B2C 直销商城 商家与会员直接交易 ( Business To Customer ) 1.2 B2B 批发商城 商家与商家直接交易 1.3 B2B…

    Linux 2023年6月14日
    0111
  • VMware虚拟机centOS7下配置桥接网络

    在VMware虚拟机下centOS7下配置桥接网络 首先,在以下的配置都操作好之后,要确认宿主机的网络连接方式, 若为需要认证的网络,则可能会出现宿主机与虚拟机能互相ping,但虚…

    Linux 2023年6月6日
    0121
  • 渐变色搭配网站(模仿)

    html;gutter:true; 渐变色</p> <pre><code> * { margin: 0; } body { display: f…

    Linux 2023年6月13日
    078
  • 不可不知的软件架构模式

    什么是系统架构(Architecture) 设计不仅仅指的是外观和感觉,它还包括运作方式。—— 史蒂夫·乔布斯 系统架构(System Architecture),软件架构(Sof…

    Linux 2023年6月14日
    067
  • 附032.Kubernetes实现蓝绿发布

    蓝绿发布原理 蓝绿发布本质上是希望能优雅无误的迭代应用,以便于使应用平稳提供服务。通常是不停老版本的同时对新版本进行先发布,然后确认无误后进行流量切换,即并行部署。Kubernet…

    Linux 2023年6月13日
    079
  • 数据库主从复制

    主从复制是MySQL中最重要的功能之一。主从复制是指一台服务器充当主数据库服务器,另一台或多台服务器充当从数据库服务器,主服务器中的数据自动复制到从服务器之中。对于多级复制,数据库…

    Linux 2023年6月6日
    057
  • 国产化之x64平台安装银河麒麟操作系统

    背景 某个项目需要实现基础软件全部国产化,其中操作系统指定银河麒麟v4,CPU使用飞腾处理器。飞腾处理器是ARMv8架构的,在之前的文章中介绍了使用QEMU模拟ARMv8架构安装银…

    Linux 2023年5月27日
    071
  • 【实测】Python 和 C++ 下字符串查找的速度对比

    最近在备战一场算法竞赛,语言误选了 Python ,无奈只能着手对常见场景进行语言迁移。而字符串查找的场景在算法竞赛中时有出现。本文即对此场景在 Python 和竞赛常用语言 C+…

    Linux 2023年6月13日
    0101
  • 如何使用yum来下载RPM包而不进行安装

    yum是基于Red Hat的系统(如CentOS、Fedora、RHEl)上的默认包管理器。使用yum,你可以安装或者更新一个RPM包,并且他会自动解决包依赖关系。但是如果你只想将…

    Linux 2023年6月6日
    0152
  • 项目的部署和环境搭建

    项目的部署和环境搭建 cd /opt (一般项目部署的文件代码都放在/opt目录下) 3.进入项目跟目录下的docker目录: cd crm _pro/docker 4.执行doc…

    Linux 2023年6月7日
    084
  • 每天一个 HTTP 状态码 202

    202 Accepted 表示服务器已经接受了这个请求,但是还不确定… 202 Accepted 202 Accepted 表示服务器已经接受了这个请求,但是还不确定这…

    Linux 2023年6月7日
    090
  • 五分钟通俗理解自动驾驶

    大家好,我是良许。 这几年,自动驾驶这个概念非常火热,无论是百度还是谷歌,都做出了还不错的原型机,但是你真的知道什么是自动驾驶吗? 本文就花 5 分钟左右的时间,向大家科普一下什么…

    Linux 2023年6月14日
    097
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球