Java遍历Map的五种方式

这篇具有很好参考价值的文章主要介绍了Java遍历Map的五种方式。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、遍历Map的五种方式

java中遍历map一般有五种方法,从最早的Iterator,到java5支持的foreach,再到java8的Lambda表达式。

  • 如果只是获取key,或者value,推荐使用keySet或者values方式
  • 如果同时需要key或者value推荐使用entrySet
  • 如果需要在遍历过程中删除元素推荐使用Iterator
  • 如果需要在遍历过程中增加元素,可以新建一个临时map存放新增的元素,等遍历完毕,再把临时map放到原来的map中。

二、准备条件

初始化一个map

Map<Integer,Integer> map= new HashMap<>();
for(int i=0;i<10000;i++){
    map.put(i,i+1);
}

三、keySet和values方式遍历

如果只是需要获取map的key或者value,用map的keySet或values方法无疑时最方便的

//keySet获取key
@Test
public  void testKeySet(){
    for (Integer key: map.keySet()){
        System.out.println(key);
    }
}

//values获取value
@Test
public  void testValues(){
   for (Integer value: map.values()){
       System.out.println(value);
   }
}

四、keySet和get(key)方式遍历map

如果需要同时获取key和value,可以先获取key,然后再通过map的get(key)获取value,需要说明的是,该方法不是最优解,一般不推荐使用。

//keySet get(key)获取key 和value
    @Test
    public void testKeySetAndGetKey(){
        for(Integer key: map.keySet()){
            System.out.println(key+":"+map.get(key));
        }
    }

五、entrySet方式遍历map

通过对map entrySet的遍历,也可以同时拿到key和value,一般情况下,性能要优于keySet,这一种也是最常用的遍历方法。

@Test
public void testEntry(){
    for (Map.Entry<Integer,Integer> entry: map.entrySet()){
        System.out.println(entry.getKey()+":"+entry.getValue());
    }
}

六、Iterator方式遍历map

对于上面的foreach都可以用Iterator在Java5中才被支持,foreach的写法看起来更简洁。但Iterator也有优势:在用foreach遍历map时,如果改变其大小,会报错,但如果只是删除元素,可以使用Iterator的remove方法删除元素。

//Iterator entrySet获取key和value
    public void testIterator(){
        Iterator<Map.Entry<Integer,Integer>> it = map.entrySet().iterator();
        while (it.hasNext()){
            Map.Entry<Integer,Integer> entry = it.next();
            System.out.println(entry.getKey()+":"+ entry.getValue());
            it.remove();//删除元素
        }
    }

七、Lambda表达式

java8提供了Lambda表达式支持,语法看起来更简洁,可以同时拿到key和value,不过性能低于entrySet,所以更推荐entrySet的方式文章来源地址https://www.toymoban.com/news/detail-435228.html

public void testLambda(){
        map.forEach((key,value)->{
            System.out.println(key+":"+value);
        });
    }

到了这里,关于Java遍历Map的五种方式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java调用python代码的五种方式

    你还在纠结怎么样在Java中调用python吗?我们在实际工程项目问题中,经常会碰到不同语言代码之间互调的问题,比如此处的Java调用python(常见Java调用python写的处理模型来完成数据处理等)。 让我们来看看具体怎么操作吧! 说明: Java调用不带参数的python代码执行 样例代码

    2024年02月09日
    浏览(41)
  • java -jar启动的五种方式(包括后台启动)

    1、用java -jar xxx.jar 点击回车就会启动成功,但是当退出或者关闭远程工具就会把进程关闭 以上就是启动的项目Java -jar xxx.jar 但是点击过Ctl+c或者把此窗口关闭 就会杀死进程那么此程序就会关闭 2、命令:java -jar xxx.jar 此语句比第一个命令多一个符号,但是Ctrl+c或者关闭窗口后

    2024年02月11日
    浏览(27)
  • Java 连接合并两个数组(Array)的五种方法

    T可以是基础类型,也是类类型

    2024年02月05日
    浏览(42)
  • NO.17 JAVA中创建线程池的五种方法

    JAVA中创建线程池主要有两类方法,一类是通过Executors工厂类提供的方法,该类提供了4种不同的线程池可供使用。另一类是通过ThreadPoolExecutor类进行自定义创建。 目录 一、通过Executors类提供的方法。 1、newCachedThreadPool 2、newFixedThreadPool 3、newScheduledThreadPool 4、newSingleThreadExec

    2024年02月08日
    浏览(37)
  • Java基础——Map集合遍历方式

    (1)方式一:键找值 先获取Map集合的全部键的Set集合。 遍历键的Set集合,然后通过键提取对应值。 涉及API: 方法名称 说明 SetK keySet() 获取所有键的集合 V get(Object key) 根据键获取值 (2)方式二:键值对 先把Map集合转换成Set集合,Set集合中每个元素都是键值对实现类型了。

    2023年04月10日
    浏览(32)
  • Java单例模式的五种实现方式 懒汉式 饿汉式 双重校验锁 静态变量 静态内部类 枚举实现单例模式等

    Java单例模式是一种设计模式,用于确保一个类只有一个实例,并提供全局访问点以获取该实例。它通常用于需要共享资源或控制某些共享状态的情况下。 懒汉式:在类加载的时候就创建对象,要再调用方法时才创建对象,减少内存开销。 饿汉式:再类加载的时候就实例化对

    2024年04月27日
    浏览(27)
  • 多线程的五种“打开”方式

    线程(Thread)是计算机科学中的一个基本概念,它是进程(Process)中的一个执行单元,负责执行程序的指令序列。 线程是操作系统能够进行调度和执行的最小单位。 在多任务操作系统中,多个线程可以在同一个进程内并发执行,共享进程的资源。 { 假设你正在厨房中准备晚

    2024年02月10日
    浏览(27)
  • PHP的五种运行方式

    PHP的五种运行方式: 1、命令行方式:通过在 命令行终端中输入 php 命令 ,可以执行PHP脚本文件。这种方式常用于执行独立的PHP脚本,比如执行一些批处理任务、定时任务等。 优点:灵活方便,可用于执行独立的PHP脚本,适合批处理任务和定时任务。 缺点:需要手动在命令

    2024年02月05日
    浏览(38)
  • Java如何遍历Map对象集合(多种方式)6种方式

    今天比昨天,更优秀 Map简介 Map是用于保存具有映射关系的数据,保存两组值,key和value,这两组值可以是任何应用类型的数据。 Map典型的实现类是HashMap、Hashtable(HashMap子类还有LinkedHashMap)、SortedMap子接口及实现类TreeMap、WeakHashMap、IndentityHashMap等 Map遍历第一种 注意:如果

    2024年02月08日
    浏览(34)
  • 【Java基础】Java 8中Map的遍历方式

    Java 8引入了许多新特性,其中包括对集合的处理方式进行了重大升级。对于Map类型,Java 8也提供了一些新的遍历方式,能够更加优雅地实现Map的遍历和操作。本文将介绍Java 8中常用的Map遍历方式,并比较它们之间的优缺点。 Java 8中新增了 forEach() 方法,可以通过lambda表达式或

    2023年04月22日
    浏览(54)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包