Java学习之集合

1.ArrayList:采用数组的形式保存对象,这种方式将对象保存在连续的位置中,所以查询效率比较高,但是插入删除时麻烦,并且ArrayList不是线程安全的。

2.Vector:保存对象的方式与ArrayList相同,但是Vertor方法中都有synchronized关键字,所以是线程安全的。

3.LinkedList 采用的将对象存放在独立的空间中,而且在每个空间中还保存下一个链接的索引 但是缺点就是查询麻烦。

关于ArrayList实现线程安全方法:

1.使用Vector,它是ArrayList的线程安全版本,其实现90%和ArrayList都完全一样。

2.使用Collections.synchronizedList方法把你的ArrayList变成一个线程安全的List。

3.两种区别

  1.SynchronizedList有很好的扩展和兼容功能。他可以将所有的List的子类转成线程安全的类。 

  2.使用SynchronizedList的时候,进行遍历时要手动进行同步处理。

  3.SynchronizedList可以指定锁定的对象。

  4.LinkedList也是使用SynchronizedList转换成线程安全的类,Vector不能替代LinkedList。

原文地址:https://www.cnblogs.com/michaelShao/p/6372720.html