5种遍历Map的方法

import java.util.*;

public class MapGoThrough {
    public static void main(String[] args) {
        Map<String, Integer> tempMap = new HashMap<>();
        tempMap.put("a",12);
        tempMap.put("b",34);
        tempMap.put("c",56);
        //JDK1.4中
        //遍历方法一 hashmap entrySet()遍历
        Iterator it=tempMap.entrySet().iterator();
        while (it.hasNext()){
            Map.Entry entry=(Map.Entry) it.next();
            Object key=entry.getKey();
            Object value=entry.getValue();
            System.out.println("key="+key+" value="+value);
        }

        System.out.println("+++++++++++++++++++++++++++++++");
        //JDK1.5中,应用新特性For-Each循环
        //遍历方法二
        for (Map.Entry<String,Integer> entry:tempMap.entrySet()){
            String key=entry.getKey().toString();
            String value=entry.getValue().toString();
            System.out.println("key="+key+" value="+value);
        }
        System.out.println("+++++++++++++++++++++++++++++++++++");
        //遍历方法三 hashMap keySet()遍历
        for (Iterator i=tempMap.keySet().iterator();i.hasNext();) {
            Object obj = i.next();
            System.out.println(obj);
            System.out.println("key="+obj+" value="+tempMap.get(obj));

        }
        for (Iterator i=tempMap.values().iterator();i.hasNext();){
            Object obj=i.next();
            System.out.println(obj);//循环输出value
        }
        //遍历方法四 treemap keySet()遍历
        for (Object o:tempMap.keySet()){
            System.out.println("key="+o+" value="+tempMap.get(o));
        }
        System.out.println("+++++++++++++++++++++++++++++++++++++");
        //java如何遍历Map<String,ArrayList> map=new HashMap<String, ArrayList>();
        System.out.println("java 遍历Map<String,ArrayList> map=new HashMap<String,ArrayList>();");
        Map<String,ArrayList> map=new HashMap<>();
        Set<String> keys=map.keySet();
        Iterator<String> iterator=keys.iterator();
        while (iterator.hasNext()){
            String key=iterator.next();
            ArrayList arrayList=map.get(key);
            for (Object o:arrayList){
                System.out.println(0);
            }
        }
        Map<String,List> maptest=new HashMap<>();
        for (Map.Entry entry:map.entrySet()){
            String key=entry.getKey().toString();
            List<String> list=(List)entry.getValue();
            for (String value:list){
                System.out.println(key+"=============="+value);
            }
        }


    }
}

keySet是键的集合,Set里面的类型即key的类型

entrySet是键-值对的集合,Set里面的类型是Map.Entry

Entry是一个键-值对

keySet():迭代后只能通过get()取key

entrySet():迭代后可以e.getKey(),e.getValue()取key和value。返回的是Entry接口

keySet()的速度比entrySet慢了很多,也就是keySet方式遍历Map的性能不如entrySet性能好。为了提供性能,以后多考虑用entrySet()方式来进行遍历


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值