动力节点首页 全国咨询热线:400-8080-105

绑定手机号,登录
手机号

验证码

微信登录
手机号登录
手机号

验证码

微信登录与注册
微信扫码登录与注册

扫码关注微信公众号完成登录与注册
手机号登录
首页 > 文章

Map的4种迭代方法

06-01 10:56 1245浏览
举报 T字号
  • 大字
  • 中字
  • 小字

Map本身没有迭代器,因此Map需要借助外物来进行迭代,这其中包括各种方法和接口。下面我们就来看看常见的Map的4种迭代方法。

1.利用Map接口的values()方法,返回此映射中包含的值的Collection(值不唯一),

然后通过Collecion的迭代器进行迭代。(只需要Value,不需要Key的时候)

public class MapDemo {
 
    public static void main(String[] args) {
         
        Map<Integer,String> map = new HashMap<Integer,String>();
        method_2(map);
    }
     
    public static void method_2(Map<Integer,String> map){
         
        map.put(8,"zhaoliu");
        map.put(2,"zhaoliu");
        map.put(7,"xiaoqiang");
        map.put(6,"wangcai");
                 
        Collection<String> values = map.values();
         
        Iterator<String> it2 = values.iterator();
        while(it2.hasNext()){
            System.out.println(it2.next());
        }
        }
} 

2.通过keySet方法获取map中所有的键所在的Set集合(Key和Set的都具有唯一性),

再通过Set的迭代器获取到每一个键,再对每一个键通过Map集合的get方法获取其对应的值即可。

Set<Integer> keySet = map.keySet();
Iterator<Integer> it = keySet.iterator();
 
while(it.hasNext()){
    Integer key = it.next();
    String value = map.get(key);
    System.out.println(key+":"+value);     
}

3.利用Map的内部接口Map.Entry<K,V>使用iterator。  

通过Map的entrySet()方法,将键和值的映射关系作为对象存储到Set集合中。

这个映射关系的类型就是Map.Entry类型(结婚证)。

再通过Map.Entry对象的getKey和getValue获取其中的键和值。

Set<Map.Entry<Integer, String>> entrySet = map.entrySet();
 
Iterator<Map.Entry<Integer, String>> it = entrySet.iterator();
 
while(it.hasNext()){
    Map.Entry<Integer, String> me = it.next();
    Integer key = me.getKey();
    String value = me.getValue();
    System.out.println(key+":"+value);         
}

4.通过Map.entrySet()方法遍历key和value(推荐,尤其是容量大时)

for (Map.Entry<String, String> entry : map.entrySet()) {
       System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());
      }

我们在使用这些迭代方法时要考虑到实际情况,随机应变,才能发挥每种方法最好的作用。

0人推荐
共同学习,写下你的评论
0条评论
代码小兵498
程序员代码小兵498

153篇文章贡献528999字

相关课程 更多>

作者相关文章更多>

推荐相关文章更多>

Java面试题及答案整理

提枪策马乘胜追击04-21 20:01

Spring常见面试题

代码小兵92504-17 16:07

Java零基础实战项目——五子棋

代码小兵98804-25 13:57

Java string类详解

杨晶珍05-11 14:54

6道经典算法面试题

杨晶珍05-12 16:39

发评论

举报

0/150

取消