Java集合 Map的遍历

来源:互联网 发布:地产网络推广公司排名 编辑:程序博客网 时间:2024/05/21 05:39

在遍历collection时,通常会用到子类中iterator方法。而Map同样地作为Java中的集合,却没有提供iterator方法,那该如何遍历Map集合呢?实际上,Map提供了三种遍历方式:
1.获取并遍历keySet集合,获取value;
2.获取value的collection集合并遍历value;
3.获取键值对entrySet集合并遍历,获取value。
接下来以HashMap为例,分别说明。

方式1

获取并遍历keySet集合,获取value。

public class MapTest {    public static void main(String[] args) {        Map<String, String> map = new HashMap<>();        // 添加元素        map.put("香蕉", "banana");        map.put("苹果", "apple");        map.put("桃子", "peach");        map.put("西瓜", "watermelon");        // 调用keySet方法,获取keySet集合        Set<String> kSet = map.keySet();        // 遍历keySet集合,调用get方法获取value        for(String chName : kSet){            System.out.println(map.get(chName));        }    }}

结果为:

bananawatermelonpeachapple

方式2

获取value的collection集合并遍历value。

public class MapTest {    public static void main(String[] args) {        Map<String, String> map = new HashMap<>();        // 添加元素        map.put("香蕉", "banana");        map.put("苹果", "apple");        map.put("桃子", "peach");        map.put("西瓜", "watermelon");         // 调用values方法,获取value的collection集合         Collection<String> vCollection = map.values();         //遍历collection,获取value         for(String enName : vCollection){             System.out.println(enName);         }    }}

结果为:

bananawatermelonpeachapple

方式3

获取键值对entrySet集合并遍历,获取value。

public class MapTest {    public static void main(String[] args) {        Map<String, String> map = new HashMap<>();        // 添加元素        map.put("香蕉", "banana");        map.put("苹果", "apple");        map.put("桃子", "peach");        map.put("西瓜", "watermelon");        // 调用entrySet方法,获取entrySet        Set<Map.Entry<String, String>> eSet = map.entrySet();        // 遍历entrySet集合,调用Map.Entry中的getValue方法        for (Map.Entry<String, String> entry : eSet) {             System.out.println(entry.getValue());        }    }}

结果为:
banana
watermelon
peach
apple

总结

以上遍历方式都是先将Map的key或value或entry转化为collection,再遍历collection从而实现遍历Map中value的目的。这便是Java API中提到的”Map 接口提供三种collection 视图,允许以键集、值集或键-值映射关系集的形式查看某个映射的内容“。

0 0
原创粉丝点击