Map集合常用的三种遍历方式

Map集合常用的三种遍历方式,第1张

Map集合常用的三种遍历方式
    Map集合使用的是Key - Value的形式存储元素,也就是键值对的形式。Map集合内部的实现分别是HashMap和TreeMap,也就是哈希表和二叉树这两种数据结构。List集合和Set集合都是继承自Collection类,而Map集合就是自己的父类。前者可以直接通过Iterator迭代器进行迭代,而后者就必须要转换成Set集合再使用Iterator迭代器进行内部元素的迭代

Map集合有效的遍历出内部的元素,就必须转换成Set集合再使用Iterator迭代器进行迭代。

方式一

使用Map接口自带的内部接口 Entry 进行过度方式的遍历
public static interface Map.Entry
Map集合内部元素的映射条目(键值对)。 Map.entrySet方法返回地图的集合视图,其元素属于此类。

 private static void mapItetator(){
        Map mapCollect = new HashMap<>();
        mapCollect.put("zhang",11);
        mapCollect.put("san",1212);
        // entrySet()将Map集合转换成Set集合,然后使用Set集合的迭代器进行元素的迭代。
        Iterator> iterator = mapCollect.entrySet().iterator();
        //迭代器的使用
        while(iterator.hasNext()){
        //取出内部的元素
            Map.Entry item = iterator.next();
            System.out.println(item.getKey() + "--->" + item.getValue());
        }
        List result = new ArrayList<>();
        result.toArray();
    }

结果

san—>1212
zhang—>11

方式二

Map集合.keySet() 将Key映射成Set集合,Map集合.values() 将Value映射成Collection集合


    private static void mapItetator(){
        Map mapCollect = new HashMap<>();
        mapCollect.put("zhang",11);
        mapCollect.put("san",1212);
		// 将Key转换成Set集合进行遍历输出
        for(String key : mapCollect.keySet()) System.out.println(key);
		// 将Value转换成Collection集合进行遍历输出
        for(Integer value : mapCollect.values()) System.out.println(value);
    }

结果

san
zhang
1212
11

方式三

通过指定的Key,再利用Map集合的get () 方法得到指定的Value

   private static void mapItetator(){
        Map mapCollect = new HashMap<>();
        mapCollect.put("zhang",11);
        mapCollect.put("san",1212);
 		// 将Key传换成Set集合,遍历并得到Key映射的Value
        for(String key : mapCollect.keySet()){
            System.out.println(key + "--->" + mapCollect.get(key));
        }

结果

san—>1212
zhang—>11

总结

再上述三种方式中,采用的Map实现类是Hash Map,哈希表也称为散列表,存储数据是由一个Hash函数进行定位的,所以元素输出的顺序就会导致和存储时的位置不一样,如果想要一样,就可以使用linkedHashMap实现类去实现Map接口。
遍历Map集合最常用的方式就是方式一,将Map集合转换成Set集合,然后通过Iterator进行遍历输出。

今天是大年初一,大家新年快乐,2021年已经成为了过去,这一年的努力在我们的眼里都看得十分清晰,是的,很累。但是我们无法避免社会的残酷,我们需要拼命地去追赶哪些被称为“天才”的奋斗者。2022年又是一个新的开始,所以请让我们继续奋斗、继续加油。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5719193.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-18
下一篇 2022-12-18

发表评论

登录后才能评论

评论列表(0条)

保存