HashMap的4种遍历方式

HashMap我们经常用到,所以还是要知道下HashMap是如何取值的。

HashMap的4种遍历方式:

package net.stxy.one.utils;

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

/**
 * Created by ASUS on 2018/5/26
 *
 * @Authod Grey Wolf
 */
public class Test {

    public static void main(String[] args) {

        Map<String,String>map=new HashMap <String, String>(8);
        int i;
       for (i=0;i<3;i++){
           map.put("map"+i,"map"+i);
       }
       Test t=new Test();
        t.sysmap1(map);
        t.sysmap2(map);
        t.sysmap3(map);
        t.sysmap4(map);
    }

    private void sysmap4(Map<String, String> map) {
        System.out.println("第四种:");
        //获取map中的所有值,遍历后可以取得每一个值,但是得不到key
        for (String value:map.values()){
            System.out.println("value:"+value);
        }
    }

    private void sysmap3(Map<String, String> map) {
        System.out.println("第三种:");
        //最常用的方式,获取map的所有key,循环每个key,获取key对应的值
        for (String key:map.keySet()){
            System.out.println("key:"+key+"------value:"+map.get(key));
        }
    }

    private void sysmap2(Map<String, String> map) {
        System.out.println("第二种:");
        //将map转换成set集合,使用增强for直接遍历集合中的数据
        for (Map.Entry<String,String>entry:map.entrySet()){
            System.out.println("key:"+entry.getKey()+"------value:"+entry.getValue());
        }
    }

    private void sysmap1(Map<String, String> map) {
        System.out.println("第一种:");
        //将map转换成set集合,使用set的迭代器,可以在不知道key的情况下遍历Map对象
        Iterator iterator=map.entrySet().iterator();
        while (iterator.hasNext()){
            Map.Entry<String,String>entry= (Map.Entry<String, String>) iterator.next();
            System.out.println("key:"+entry.getKey()+"------value:"+entry.getValue());
        }
    }


}

结果:

第一种:
key:map2------value:map2
key:map1------value:map1
key:map0------value:map0
第二种:
key:map2------value:map2
key:map1------value:map1
key:map0------value:map0
第三种:
key:map2------value:map2
key:map1------value:map1
key:map0------value:map0
第四种:
value:map2
value:map1
value:map0

Process finished with exit code 0


我的座右铭:不会,我可以学;落后,我可以追赶;跌倒,我可以站起来;我一定行。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

灰太狼_cxh

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值