java中的常用容器

不推荐

  • Vector,通过数组的方式存储数据,线程安全。属于遗留容器,不推荐使用
  • Hashtable属于遗留容器。不推荐使用。线程安全。
  • Dictionary属于遗留容器。不推荐使用。
  • BitSet属于遗留容器。不推荐使用。
  • Stack属于遗留容器。不推荐使用。继承Vector。JVM设计败笔。
  • Properties属于遗留容器。不推荐使用。继承Hashtable。JVM设计败笔。

推荐

  • HashMap 实现MAP接口,非线程安全的
  • HashSet 基于HashMap实现
  • ConcurrentHashMap JUC中提供,实现MAP接口,用于替代Hashtable,线程安全
  • ArrayList 非线程安全的。可以通过工具类Collections中的synchronizedList方法将其转换成线程安全的容器后再使用,使用数组方式存储数据
  • LinkedListed 非线程安全。可以通过工具类Collections中的synchronizedList方法将其转换成线程安全的容器后再使用,使用双向链表存储数据
  • TreeMap 底层是红黑树。相比与hashmap o(1)的存取速度,TreeMap对元素的操作复杂度为O(logn),非线程安全
  • TreeSet 基于TreeMap实现,非线程安全

你可能感兴趣的:(java)