Hashmap map的遍历方式

map的遍历

第一种:KeySet()
将Map中所有的键存入到set集合中。因为set具备迭代器。所有可以迭代方式取出所有的键,再根据get方法。获取每一个键对应的值。 keySet():迭代后只能通过get()取key 。
取到的结果会乱序,是因为取得数据行主键的时候,使用了HashMap.keySet()方法,而这个方法返回的Set结果,里面的数据是乱序排放的。

public class Test1 {
    public static void main(String[] args) {
        Map map = new HashMap ( );
        map.put ("key1", "lisi1");
        map.put ("key2", "lisi2");
        map.put ("key3", "lisi3");
        map.put ("key4", "lisi4");
        //先获取map集合的所有键的set集合,keyset()
        Iterator it = map.keySet ( ).iterator ( );
        //获取迭代器
        while (it.hasNext ( )) {
            Object key = it.next ( );
            System.out.println (map.get (key));
        }
    }
}

输出:
lisi1
lisi2
lisi3
lisi4

第二种:entrySet()
Set<Map.Entry<K,V>> entrySet() //返回此映射中包含的映射关系的 Set 视图。(一个关系就是一个键-值对),就是把(key-value)作为一个整体一对一对地存放到Set集合当中的。Map.Entry表示映射关系。entrySet():迭代后可以e.getKey(),e.getValue()两种方法来取key和value。返回的是Entry接口。
典型用法如下

public class Test {
    public static void main(String[] args) {
        Map map = new HashMap ();
        map.put("key1","lisi1");
        map.put("key2","lisi2");
        map.put("key3","lisi3");
        map.put("key4","lisi4");
        //将map集合中的映射关系取出,存入到set集合
        Iterator it = map.entrySet().iterator();
        while(it.hasNext()){
            Map.Entry e =(Map.Entry) it.next();
            System.out.println("键"+e.getKey () + "的值为" + e.getValue());
        }

输出:
键key1的值为lisi1
键key2的值为lisi2
键key3的值为lisi3
键key4的值为lisi4

总结:推荐使用第二种方式,即entrySet()方法,效率较高。对于keySet其实是遍历了2次,一次是转为iterator,一次就是从HashMap中取出key所对于的value。而entryset只是遍历了第一次,它把key和value都放到了entry中,所以快了。两种遍历的遍历时间相差还是很明显的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值