HashMap和TreeMap类

1、HashMap

  • HashMap是一个利用哈希表原理来存储元素的集合,并且允许空的key-value键值对。HashMap是非线程安全的,也就是说在多线程的环境下,可能会存在问题,而Hashtable是线程安全的容器。
  • HashMap支持fail-fast机制。HashMap的实例有两个参数影响性能:初始容量和加载因子。可以使用Collections.synchronizedMap(new HashMap(...))来构造一个线程安全的HashMap

2、TreeMap

  • TreeMap是一个基于NavigableMap实现的红黑树。这个map根据key自然排序存储,或者通过comparator进行定制排序。
  • TreeMapcontainsKeygetputremove方法提供了log(n)的时间开销。
  • TreeMap的实现不是线程安全的。如果多线程并发访问TreeMap,并且至少一个线程修改了map,必须进行外部加锁。通常通过在自然封装集合的某个对象上进行同步来实现,或者使用SortedMap m =Collections.synchronizedSortedMap(new TreeMap(...))
  • TreeMap的实现也支持fail-fast机制。
posted @ 2021-02-19 22:25  Eleanor123  阅读(110)  评论(0编辑  收藏  举报