map

Map(很重要)、方法keySet、entrySet演示图解

Map:一次添加一对元素。Collection一次添加一个元素。Map也称为双列集合,Collection集合称为单列集合。其实Map集合中存储的就是键值对,Map集合必须保证键的唯一性。
常用方法:
1.添加:value put(key,value);返回一个和key关联的值,如果没有返回为null。
2.删除:void clear();清空map集合。value remove(key);根据制定的key翻出这个键值对。
3.修改:boolean containsKey(key);
boolean containsValue(value);
boolean isEmpty();
4.查询:value get(key);通过键获取值,如果没有该键返回null。当然可以通过返回null,来判断是否包含指定键。
int size();获取键值对分个数。
map中存储相同键时,会覆盖值

keySet

图解:

 
keySet.png

举例:
取出map中的所有元素。原理,通过keySet方法获取map中所有的键所在的Set集合,再通过Set的迭代器获取到每一个键,再对每一个键通过map集合的get方法获取其对应的值即可。

package com.vv.map.demo;

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

public class MapDemo {

    public static void main(String[] args) {
        HashMap<Integer,String> map = new HashMap<Integer,String>();
        method(map);
        
    }

    private static void method(HashMap<Integer, String> map) {
        map.put(8,"zhaoliu");
        map.put(2,"zhaoliu");
        map.put(7,"xiaoqiang");
        map.put(6,"wangcai");
        
        Set<Integer> set = map.keySet();
        Iterator<Integer> it = set.iterator();
        while(it.hasNext()){
            Integer key = it.next();
            String value = map.get(it.next());
            
            System.out.println(key + ":" + value);
        }
        }

}

entrySet
图解

 
entrySet .png

通过Map转成set就可以迭代,找到了另一个方法,entrySet,该方法将键和值的映射关系作为对象存储到了Set集合中,而这个映射关系的类型就是Map.Entry类型(k,v)

package com.vv.map.demo;

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

public class MapDemo {

    public static void main(String[] args) {
        HashMap<Integer,String> map = new HashMap<Integer,String>();
        method(map);
        
    }

    private static void method(HashMap<Integer, String> map) {
        map.put(8,"zhaoliu");
        map.put(2,"zhaoliu");
        map.put(7,"xiaoqiang");
        map.put(6,"wangcai");
        
        Set<Map.Entry<Integer, String>> set = map.entrySet();
        Iterator<Map.Entry<Integer, String>> it = set.iterator();
        while(it.hasNext()){
            Map.Entry<Integer, String> entry = it.next();
            Integer key = entry.getKey();
            String value = entry.getValue();
            System.out.println(key + ";;;;;;" + value);
        }
        
        }

}

只获取value时

package com.vv.map.demo;

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

public class MapDemo {

    public static void main(String[] args) {
        HashMap<Integer,String> map = new HashMap<Integer,String>();
        method(map);
        
    }

    private static void method(HashMap<Integer, String> map) {
        map.put(8,"zhaoliu");
        map.put(2,"zhaoliu");
        map.put(7,"xiaoqiang");
        map.put(6,"wangcai");
        
        Collection<String> values = map.values();
        Iterator<String> it = values.iterator();
        while(it.hasNext()){
            System.out.println(it.next());
        }
        }
}

转载至https://www.jianshu.com/p/430506b19b0d
原文地址:https://www.cnblogs.com/jinlang/p/14117026.html