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)

大家都在看

  • shell bash-shell

    bash shell中的命令替换,cmd或者$(cmd)。 bash shell中的变量赋值,直接name = var; ( bash中的变量赋值不能中间有空格) 变量引用时,$n…

    Linux 2023年5月28日
    097
  • 正则: 匹配英文、数字和所有特殊字符

    r”’\[`~!@#$%^&*()_\-+=<>?:"{}|,.\/;’\\[\]·~!@#¥%……&*()——\-+={}|《》?…

    Linux 2023年6月15日
    0130
  • 使用github action发布hexo博客到云服务器

    > node -v v16.15.0 > npm -v 8.5.5 安装Hexo CLI &#x5728;&#x4F60;&#x7684;&am…

    Linux 2023年6月7日
    0110
  • 剑指offer计划26(字符串中等)—java

    1.1、题目1 剑指 Offer 20. 表示数值的字符串 1.2、解法 这题表示直接上大佬的题解把。。。。代码太长了。有限状态自动机。对状态机一无所知的我一脸懵 1.3、代码 c…

    Linux 2023年6月11日
    097
  • Shading-JDBC、ShadingSphere、ShardingProxy 使用详解

    ShadingSphere ​ShardingSphere是一款起源于当当网内部的应用框架,2015年在当当网内部诞生,2016年由主要开发人员张亮带入京东数科,在国内经历了当当网…

    Linux 2023年6月6日
    0143
  • OpenWRT TP_LINK703N 校园网 锐捷认证解决办法

    OpenWRT TP_LINK703N 校园网 锐捷认证解决办法 一、准备的工具 1) SSH登录工具,推荐使用MobaXterm_Personal下载链接https://moba…

    Linux 2023年6月6日
    094
  • 搭建Nginx四层反向代理

    需求背景: 前段时间公司因为业务需求需要部署一个正向代理,我已经分享出来了https://www.cnblogs.com/Dfengshuo/p/11911406.html,现有因…

    Linux 2023年6月8日
    0117
  • 消息中间件MQ的学习境界和路线

    在《深入理解Java类加载机制,再也不用死记硬背了》里我提到了对于一门语言的”会”的三个层次。本篇将以知识地图的形式展现学习消息中间件MQ各个层次要掌握的内…

    Linux 2023年6月14日
    0112
  • 微信白名单获取

    公司在微信WIFI登录项目中,需要在BRAS设备上添加微信服务器的IP地址到白名单列表中,以实现用户连接热点后,能够使用微信中的功能(如:添加公众号),但不能使用其他应用进行上网操…

    Linux 2023年6月14日
    0112
  • Linux Ubuntu 添加新用户

    1. 了解配置文件 Linux下与用户信息相关的配置文件有 /etc/passwd、 /etc/group、 /etc/shadow等,其权限分别如下: /etc/passwd:保…

    Linux 2023年5月27日
    0136
  • Shell脚本编程中的几个问题

    条件语句 正确的写法: if [ $1 = "-f" ] #注意这里,前后方括号和中间的内容之间必须有空格! then commands fi 错误的写法: i…

    Linux 2023年6月14日
    081
  • TCP 和 UDP 协议简介

    一、TCP TCP(Transmission Control Protocol),传输控制协议,对”传输、发送、通信”进行”控制”的…

    Linux 2023年6月16日
    0168
  • centos 7 安装KVM

    一、安装KVM 实验环境如下: 虚拟机版本:VMware 12.5.7虚拟机需要开启虚拟化,如下图: 系统版本:CentOS Linux release 7.5.1804 (Cor…

    Linux 2023年6月7日
    092
  • python 练习题:使用迭代查找一个list中最小和最大值,并返回一个tuple

    python;gutter:true; -<em>- coding: utf-8 -</em>-</p> <p>请使用迭代查找一个l…

    Linux 2023年6月8日
    093
  • Redis Hashes 数据类型简述

    Redis Hashes 是我们日常使用中比较高频的 Redis 数据类型,内部使用 Redis 字典结构存储,底层实现之一为哈希表结构。 下面从哈希表节点,哈下表结构,Redis…

    Linux 2023年5月28日
    085
  • 【Leetcode】63. 不同路径 II

    一个机器人位于一个 m x n网格的左上角 (起始点在下图中标记为 “Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在…

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