[关闭]
@wxf 2018-03-12T21:39:03.000000Z 字数 4783 阅读 946

集合相关问题

面试系列


集合类结构图
image_1c8d6pkehqp71te0v38a2cen19.png-513.5kB

简单介绍ArrayList

图解集合:ArrayList (JDK1.6)

简单介绍LinkedList

图解集合:LinkedList (JDK1.6)

简单介绍Vector

Vector虽然是线程安全的,但是只是一种相对的线程安全而不是绝对的线程安全,它只能够保证增、删、改、查的单个操作一定是原子的,不会被打断,但是如果组合起来用,并不能保证线程安全性。比如:线程1在遍历一个Vector中的元素、线程2在删除一个Vector中的元素一样,势必产生并发修改异常,也就是fail-fast。

简单介绍CopyOnWriteArrayList

  • CopyOnWriteArrayList位于java.util.concurrent包下,可想而知,这个类是为并发而设计的
  • 对CopyOnWriteArrayList执行任何可变操作(如:add、set、remove等)都伴随着复制这个动作,即写时复制的方法。由此可见CopyOnWriteArrayList的缺点,就是修改代价十分昂贵,每次修改都伴随着一次的数组复制。

图解集合:CopyOnWriteArrayList (JDk1.6)
线程安全的CopyOnWriteArrayList介绍

简单介绍HashMap

HashMap和HashTable的区别

1、Hashtable是线程安全的,HashTable所有对外提供的方法都使用了synchronized,也就是同步,而HashMap则是非线程安全的
2、HashTable不允许空的value,空的value将导致空指针异常,而HashMap则无所谓,没有这方面的限制
注意:HashTable已经被淘汰,如果你不需要线程安全,那么使用HashMap,如果需要线程安全,那么使用ConcurrentHashMap。HashTable已经被淘汰了,不要在新的代码中再使用它。

简单介绍ConcurrentHashMap

ConcurrentHashMap总结:ConcurrentHashMap的设计思路
ConcurrentHashMap能完全替代HashTable吗?:HashTable的迭代器是强一致性的,而ConcurrentHashMap是弱一致性的。
http://blog.csdn.net/xuefeng0707/article/details/40834595

简单介绍TreeMap

TreeMap 是一个有序的key-value集合,它是通过红黑树实现的。

http://www.cnblogs.com/skywang12345/p/3310928.html

简单介绍HashSet

HashSet 本身就采用 HashMap 来实现的

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注