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(){ MapmapCollect = 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(){ MapmapCollect = 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(){ MapmapCollect = 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年又是一个新的开始,所以请让我们继续奋斗、继续加油。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)