java 集合(五)MapDemo

package cn.sasa.demo3;

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

public class MapDemo {
    public static void main(String[] args) {
        /**
         * Map集合 类似于 C#中的 Dictionary,存的是键值对集合,键不能重复
         * 
         * Map接口的常用方法:
         * Map接口的实现类:HashMap
         */
        Map<Integer,String> map = new HashMap<Integer, String>();
        //添加
        map.put(1, "a");
        var preObj = map.put(1, "b");//重复的键保存的是后面那个,返回被替换的值
        var preObj1 = map.put(3, "a");
        map.put(4, "c");
        map.put(5, "u");
        map.put(6, "t");
        map.put(7, "e");
        System.out.println(preObj);    //a
        System.out.println(preObj1);  //null
        System.out.println(map);       //{1=b, 3=a, 4=c, 5=u, 6=t, 7=e}
        
        //取值
        String mapStr1 = map.get(4);
        //String mapStr1 = map.get(5); //如果不存在,返回null
        System.out.println(mapStr1);    //c
        
        //移除 返回被移除的对象
        String maprev = map.remove(3);
        System.out.println(maprev);     //a
        
        System.out.println("=========================");
        //遍历
        //1、调用keySet,将所有的键存到Set集合中
        //2、遍历Set集合
        Set<Integer> inSet = map.keySet();
        
        Iterator<Integer> it = inSet.iterator();
        while(it.hasNext()) {
            Integer key = it.next();
            String val = map.get(key);
            System.out.println(val);
        }
        
        System.out.println("=========================");
        for(var key : inSet) {
            System.out.println(map.get(key));
        }
        
        System.out.println("=========================");
        //entrySet获取的是Entry对象的Set集合, 映射关系对象
        //Entry是Map类中内部定义的一个接口 , 调用方式是Map.Entry
        //interface Entry<K, V> {
        Set<Map.Entry<Integer, String>> mset = map.entrySet();
        Iterator<Map.Entry<Integer, String>> itmap = mset.iterator();
        while(itmap.hasNext()) {
            Map.Entry<Integer, String> mapent = itmap.next();
            System.out.println(mapent.getKey() + "====" + mapent.getValue() );
        }
        
        System.out.println("=========================");
        for(Map.Entry<Integer, String> entry : map.entrySet()) {
            System.out.println(entry.getKey() + "----" + entry.getValue());
        }
        
        //=================LinkedHashMap================
        //LinkedHashMap:保证迭代的顺序
        LinkedHashMap<String, String> link = new LinkedHashMap<String, String>();
        link.put("sa", "class1");
        link.put("zz", "class2");
        link.put("sxxa", "class3");
        link.put("sacc", "class4");
        System.out.println(link);
    }
}

 

posted @ 2018-12-21 10:06  SasaL  Views(325)  Comments(0Edit  收藏  举报