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"));
}
}