package com.test.collection; import java.util.HashMap; import java.util.Hashtable; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; //Map的基本应用 public class MapTest { /** * @param args */ public static void main(String[] args) { /* * HashMap KEY值不允许重复,线程不安全,效率高 */ Map map=new HashMap(); map.put(1, "张三"); map.put(2, "李四"); map.put(3, "王五"); map.remove(2); System.out.println(map.get(2)); System.out.println(map.size()); /* * HashTable 线程安全,效率低 */ Map map2=new Hashtable<>(); map2.put(1, "张三"); map2.put(2, "李四"); map2.put(3, "王五"); map2.remove(2); System.out.println(map2.get(2)); System.out.println(map2.size()); /**ConcurrentHashMap * * 底层其实是由多个小的hash table组织,线程同步时,可以分段锁 * * 比如:当我们希望线程同步,但是又不希望效率和hashTable一样太低,可以使用ConcurrentHashMap */ ConcurrentHashMap cutMap=new ConcurrentHashMap<>(); cutMap.put("123", "brant"); cutMap.put("456", "jack"); System.out.println(cutMap.get("123")); } }