* 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年又是一个新的开始,所以请让我们继续奋斗、继续加油。