Map 是一个可以保存映射关系数据的集合。key 和value可以是任何类型的数据,但是key不能重复。
HashMap HashTable区别:
1 线程安全问题
2 key是否允许为null
HashMap LinkedHashMap:
LinkedHashMap是为了解决便利HashMap无序的问题.他的父类是HashMap,使用双向链表来维护键值对的次序。然后迭代的次序与插入的顺序是一致的。由于他要维护元素的插入顺序,所以他的性能略低于HashMap.
TreeMap是sortMap接口的实现,TreeMap也是基于红黑树对所有的key进行排序。
IdentityHashMap,只有当key1==key2严格相等,才判断两个key是相等的。且允许null值和null key.
EnumHashMap:必须是单个枚举类的枚举值。根据key的自然顺序排序。不允许null键,但允许null值。
ConcurrentHashMap:这是一个线程安全的Hash Map,他比 Hash Table性能更好,可以做到读取数据不加锁。
Map map = Collections.synchronizedMap(new HashMap());