java学习——Map的四种遍历方法

Map是java中的接口,Map.Entry是Map的一个内部接口。

         Map提供了一些常用方法,如keySet()、entrySet()等方法,keySet()方法返回值是Map中key值的集合;entrySet()的返回值也是返回一个Set集合,此集合的类型为Map.Entry。

         Map.Entry是Map声明的一个内部接口,此接口为泛型,定义为Entry<K,V>。它表示Map中的一个实体(一个key-value对)。接口中有getKey(),getValue方法。

下面是遍历Map的四种方法:

package script;

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

public class MapDemo {
    public static void main(String[] args){
        Map<String,String> map=new HashMap<String,String>();
        map.put("1","value1");
        map.put("2","value2");
        map.put("3","value3");

        System.out.println("通过Map.KeySet遍历key和value:");
        for(String key:map.keySet()){
            System.out.println("key="+key+" and vlaue= "+map.get(key));
        }

        //第二种
        System.out.println("通过Map.entrySet使用iterator遍历key和value:");
        Iterator<Map.Entry<String,String>> it=map.entrySet().iterator();
        while(it.hasNext()){
            Map.Entry<String,String> entry=it.next();
            System.out.println("key= "+entry.getKey()+", value= "+entry.getValue());
            //System.out.println(entry.getClass());
        }

        //第三种
        System.out.println("通过Map.entrySet遍历key和value");
        for(Map.Entry<String,String> entry:map.entrySet()){
            System.out.println("key= "+entry.getKey()+", value= "+entry.getValue());

        }

        //第四种
        System.out.println("通过Map.values遍历所有的value,但不能遍历key");
        for(String v:map.values()){
            System.out.println("value="+v);
        }
    }

}

运行结果:

通过Map.KeySet遍历key和value:
key=1 and vlaue= value1
key=2 and vlaue= value2
key=3 and vlaue= value3
通过Map.entrySet使用iterator遍历key和value:
key= 1, value= value1
key= 2, value= value2
key= 3, value= value3
通过Map.entrySet遍历key和value
key= 1, value= value1
key= 2, value= value2
key= 3, value= value3
通过Map.values遍历所有的value,但不能遍历key
value=value1
value=value2
value=value3

参考博文:https://blog.csdn.net/Darry_R/article/details/78915420

猜你喜欢

转载自blog.csdn.net/weixin_39430584/article/details/82753611
今日推荐