Map


Map接口的使用

特点:1存储键值对,2键不能重复,值可以重复,3无序
. HashMap【重点】:
。JDK1.2版本,线程不安全,运行效率快 ;允许用null 作为key或是value。。
Hashtable :
。JDK1.0版本,线程安全,运行效率慢;不允许null作为key或是value。.
**Properties **:
。Hashtable的子类,要求key和value都是String。通常用于配置文件的读取。

package Collection.Map;

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

/**
 * Map接口的使用
 * 特点:1存储键值对,2键不能重复,值可以重复,3无序
 *
 * @author liu
 */
public class Demo01 {
    public static void main(String[] args) {
        //创建Map集合
        Map map = new HashMap<>();
        //1添加元素
        map.put("usa", "美国");
        map.put("uk", "英国");
        //重复key,会替换
        map.put("cn", "china");
        map.put("cn", "中国");
        System.out.println(map.toString());
        System.out.println(map.size());
        System.out.println(map.get("cn"));
        //2删除
/*        map.remove("usa");
        System.out.println(map.toString());*/

        //3遍历
        //3.1使用KeySet()遍历
        System.out.println("-------------------keySet遍历--------------------");
        //Set keySet = map.keySet();
        //keySet只有键
        System.out.println(map.keySet());
        for (String s : map.keySet()) {
            System.out.println(s + map.get(s));
        }

        //3.2使用entrySet()遍历
        System.out.println("-------------------entrySet()遍历--------------------");
        //Set> entries =map.entrySet();
        //entrySet获得的是键值对
        System.out.println(map.entrySet());
        for (Map.Entry entry : map.entrySet()) {
            System.out.println(entry.getKey() + entry.getValue() );
        }

        //4判断
        System.out.println(map.containsKey("cn"));
        System.out.println(map.containsValue("泰国"));
    }
}