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

<>方式一

使用Map接口自带的内部接口 Entry<K , V> 进行过度方式的遍历
public static interface Map.Entry<K,​V>
Map集合内部元素的映射条目(键值对)。 Map.entrySet方法返回地图的集合视图,其元素属于此类。
private static void mapItetator(){ Map<String,Integer> mapCollect = new HashMap
<>(); mapCollect.put("zhang",11); mapCollect.put("san",1212); //
entrySet()将Map集合转换成Set集合,然后使用Set集合的迭代器进行元素的迭代。 Iterator<Map.Entry<String,Integer
>> iterator = mapCollect.entrySet().iterator(); //迭代器的使用 while(iterator.hasNext(
)){ //取出内部的元素 Map.Entry<String,Integer> item = iterator.next(); System.out.
println(item.getKey() + "--->" + item.getValue()); } List<String> result = new
ArrayList<>(); result.toArray(); }
结果

san—>1212
zhang—>11

<>方式二

Map集合.keySet() 将Key映射成Set集合,Map集合.values() 将Value映射成Collection集合
private static void mapItetator(){ Map<String,Integer> 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<String,Integer> 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年又是一个新的开始,所以请让我们继续奋斗、继续加油。

技术
下载桌面版
GitHub
百度网盘(提取码:draw)
Gitee
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:[email protected]
QQ群:766591547
关注微信