(Map集合)利用Iterator输出Map结合

利用Iterator输出Map结合

对于集合的输出而言,最标准的做法就是利用Iterator接口完成,但是需要明确的是,在Map方法中并没有一个方法可以直接返回Iterator的接口对象,这种情况下就必须分析不直接提供Iterator操作方法的原因,下面对Collection与Map集合的存储结构进行比较处理。

发现在Map集合里面保存的实际上是一组Map.Entry接口对象(里面包装的是Key与Value),所以整个来讲Map依然实现的是单值的保存,这样在Map集合里面提供有一个方法:

  • 将全部的Map集合转为Set集合:Set<Map.Entry<K,​V>> entrySet();

 

 经过分析可以发现,如果想使用Iterator实现Map集合的输出,则必须按照如下步骤处理:

  • 利用Map接口中提供的entrySet()方法将Map集合转为Set集合
  • 利用Set集合中的Iterator方法将Set集合转为Iterator接口实例
  • 利用Iterator进行迭代输出,获取每一组的Map.Entry对象,随后通过getKey()与getValue()获取数据

范例:利用Iterator输出Map集合

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;

public class MapDemo {

    public static void main(String[] args) {

        Map <String,Integer> hashMap = new HashMap<String,Integer>();
        hashMap.put("one",1);
        hashMap.put("two",2);
        hashMap.put("three",3);
        //将Map集合变为Set集合,传输的对象变为Map.Entry,Map.Entry的类型是String,Integer
        Set<Map.Entry<String,Integer>> set= hashMap.entrySet();
        Iterator<Map.Entry<String,Integer>> iterator= set.iterator();   //获取Iterator接口对象
        while (iterator.hasNext()) {
            System.out.println(iterator.next());
        }

    }

}

one=1
two=2
three=3

虽然Map集合本身支持迭代输出,但是从实际的开发来讲,Map主要用来实现数据的Key的查找操作,如果不使用Iterator而使用forEach输出也需要转换成set集合。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值