Java遍历map集合的4中方式_杜兰特小帅的博客-程序员宝宝_java遍历map集合

方法一 通过Map.entrySet遍历key和value,在for-each循环中使用entries来遍历.推荐,尤其是容量大时

这是最常见的并且在大多数情况下也是最可取的遍历方式。在键值都需要时使用。

Map<Integer, Integer> map = new HashMap<Integer, Integer>();  
  
for (Map.Entry<Integer, Integer> entry : map.entrySet()) {  
  
    System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue());  
  
}  

方法二、通过Map.keySet遍历key,通过键找值value遍历(效率低),普遍使用,二次取值

Map<Integer, Integer> map = new HashMap<Integer, Integer>();  
  
for (Integer key : map.keySet()) {  
  
    Integer value = map.get(key);  
  
    System.out.println("Key = " + key + ", Value = " + value);  
  
}

 

方法三 如果只需要map中的键或者值,你可以通过Map.keySet或Map.values来实现遍历,而不是用entrySet。在for-each循环中遍历keys或values。

Map<Integer, Integer> map = new HashMap<Integer, Integer>();  
  
//遍历map中的键  
  
for (Integer key : map.keySet()) {  
  
    System.out.println("Key = " + key);  
  
}  

//遍历map中的值  
  
for (Integer value : map.values()) {  
  
    System.out.println("Value = " + value);  
  
}  

方法四:通过Map.entrySet使用iterator遍历key和value

Map<Integer, Integer> map = new HashMap<Integer, Integer>();  
  
Iterator<Map.Entry<Integer, Integer>> entries = map.entrySet().iterator();  
  
while (entries.hasNext()) {  
  
    Map.Entry<Integer, Integer> entry = entries.next();  
  
    System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue());  
  
}  

全部代码:


public static void main(String[] args) {
        init();
        traversal();
    }

    // HashMap按照哈希算法来存取键对象,有很好的存取性能
    private static HashMap<String, String> hMap = new HashMap<>();

    // TreeMap实现了SortedMap接口,能对键对象进行排序。支持自然排序和客户化排序两种方式。
    private static TreeMap<String, String> tMap = new TreeMap<>();

    // map的赋值
    public static void init() {
        hMap.put("1", "value1");
        hMap.put("2", "value2");
        hMap.put("3", "value3");
    }

    // map的遍历
    public static void traversal() {
        // 第一种:普遍使用,二次取值
        System.out.println("通过Map.keySet遍历key和value:");
        for (String key : hMap.keySet()) {
            System.out.println("key= " + key + " and value= " + hMap.get(key));
        }

        // 第二种
        System.out.println("通过Map.entrySet使用iterator遍历key和value:");
        Iterator<Map.Entry<String, String>> it = hMap.entrySet().iterator();
        while (it.hasNext()) {
            Map.Entry<String, String> entry = it.next();
            System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());
        }

        // 第三种:推荐,尤其是容量大时
        System.out.println("通过Map.entrySet遍历key和value");
        for (Map.Entry<String, String> entry : hMap.entrySet()) {
            System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());
        }

        // 第四种
        System.out.println("通过Map.values()遍历所有的value,但不能遍历key");
        for (String v : hMap.values()) {
            System.out.println("value= " + v);
        }
    }

运行结果:

通过Map.keySet遍历key和value:
key= 1 and value= value1
key= 2 and value= value2
key= 3 and value= value3
通过Map.entrySet使用iterator遍历key和value:
key= 1 and value= value1
key= 2 and value= value2
key= 3 and value= value3
通过Map.entrySet遍历key和value
key= 1 and value= value1
key= 2 and value= value2
key= 3 and value= value3
通过Map.values()遍历所有的value,但不能遍历key
value= value1
value= value2
value= value3

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_42153997/article/details/89705362

智能推荐

jass 脚本bug_xiaozaq的博客-程序员宝宝

因为这个bug调试了好长时间才发现问题。1.经过DEBUG验证,在玩家丢失物品的瞬间,如果之间是判断此事件的触发函数来判断该单位现在是否还拥有这个物品或者拥有物品的属性技能等等,那么答案是:拥有,这非常坑爹,我不知道原因,但实际上确实是这样,那么这个问题怎么解决呢,利用计时器和哈希表来解决,添加一个触发,注册计时器,设定为0秒,保存好触发单位和物品整型值,那么在这个注册时间触发的触发函

Masonry介绍与使用实践:快速上手Autolayout_Delegate_孟令文的博客-程序员宝宝

1MagicNumber -> autoresizingMask -> autolayout以上是纯手写代码所经历的关于页面布局的三个时期在iphone1-iphone3gs时代 window的size固定为(320,480) 我们只需要简单计算一下相对位置就好了在iphone4-iphone4s时代 苹果推出了retina屏

python中列表list、字典dict找最大值、最小值_有石为玉的博客-程序员宝宝_dict 最大值

1、list中找最值c = [-10,-5,0,5,3,10,15,-20,25]print c.index(min(c))  # 返回最小值的索引print c.index(max(c)) # 返回最大值的索引 2、字典中找最值dogdistance = {'dog-dog': 33, 'dog-cat': 36, 'dog-car': 41, 'dog-bird':...

机器学习:SVM、软间隔、随机梯度下降SVM线性算法_萤火虫之暮的博客-程序员宝宝

文章目录SVM目标函数SVM目标函数推导函数间隔:几何间隔:软间隔、松弛HingeLoss和软间隔随机梯度下降算法线性SVM的算法描述:SVM目标函数SVM目标函数推导函数间隔:几何间隔:SVM 算法就可以比较自然地叙述为:最大化(几何间隔)d、使得:不妨假设函数间隔为1,这样就得到最开始的优化目标方程。约束条件中:yi(w.x+b)−1&amp;amp;amp;amp;gt;=0y_i(w . ...

Collectors.toMap 使用技巧 (List 转 Map超方便)_Resst的博客-程序员宝宝_collectors.tomap 使用

过去的做法(List转Map)userList.add(newUser().setId("A").setName("张三"));userList.add(newUser().setId("B").setName("李四"));userList.add(newUser().setId("C").setName("王五"));//遍历Mapmap=newHashMap();}使用【强制】在使用。

形式语言与自动机之有限状态自动机_朱骥伦的博客-程序员宝宝

有限状态自动机有限状态自动机状态转换表状态转换图确定有限状态自动机(DFA)不确定有限状态自动机(NFA)有限状态自动机有穷状态自动机是具有离散输入和输出的系统的一种数学模型。其主要特点有以下几个方面:(1)系统具有有穷个状态,不同的状态代表不同的意义。按照实际的需要,系统可以在不同的状态下完成规定的任务。(2)我们可以将输入字符串中出现的字符汇集在一起构成一个字母表。系统处理的所有字符串都是这个字母表上的字符串。(3)系统在任何一个状态下,从输入字符串中读入一个字符,根据当前状态和读入的

随便推点

什么是restful?_张刘洋葱的博客-程序员宝宝_restful是什么意思

restful架构,就是目前最流行的一种互联网软件架构,它结构清晰,符合标准,易于理解,扩展方便,所以得到了越来越多网站的使用。restful(requestational state  transfer)其实就是一个开发理念,是对http的很好的诠释1.对url进行规范,写restful格式的url特点:url简洁,将参数通过url传到服务器例如:原来的url是?id=001&amp;amp;type=...

嵌套A_zhaoshuai521521的博客-程序员宝宝

布局&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&amp;gt;&amp;lt;FrameLayout xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot; xmlns:tools=&quot;http://schemas.android.com/tools&quot; android:layout_width=&quot

Linux driver的“双机调试”_Wang_anna的博客-程序员宝宝_linux双机调试

使用putty登录到被调试机器,输入被调试机器的ip即可登录。然后使用 dmesg -w来查看driver或者kernel打印出的日志日志即可

java Object类型转Map_qq_16553883的博客-程序员宝宝_java object转map

仅供参考@Log4jpublic class ObjectToMap {    /*简单Object转成map*/    public static Map&amp;lt;String,String&amp;gt; toMap(Object o){        Map&amp;lt;String,String&amp;gt; map=new HashMap&amp;lt;String, String&amp;gt;();    ...

767. Reorganize String_bohu83的博客-程序员宝宝

Given a stringS, check if the letters can be rearranged so that two characters that are adjacent to each other are not the same.If possible, output any possible result. If not possible, return the...