Java学习之ArrayList集合
Java常用的三种集合
1.ArrayList: 采用数组的形式保存对象,这种方式将对象保存在连续的位置中,所以查询效率比较高但是插入删除效率低,并且ArrayList不是线程安全的。
2.LinkedList: 采用的将对象存放在独立的空间中,每个空间中还保存链接的索引 但是缺点就是查询效率低但是插入删除效率高。
3.Vector: 保存对象的方式与ArrayList相同,但是Vertor方法中都有synchronized关键字,所以是线程安全的。
ArrayList实现线程安全方法:
1.使用Vector,它可以看做是ArrayList的线程安全版本,绝大部分方法和ArrayList都完全一样。
2.使用Collections.synchronizedList方法把你的ArrayList变成一个线程安全的List。
3.SynchronizedList有很好的扩展和兼容功能,它可以将所有的List子类转成线程安全类。
4.SynchronizedList可以指定锁定的list对象。
5.LinkedList也是使用SynchronizedList转换成线程安全的类,Vector不能替代LinkedList。
ArrayList初始化三种方式
ArrayList 四种遍历方式
数据量比较少的话四种循环耗时都差不多,java8的forEach循环有预热机制,尽管数据量非常少但首次遍历耗时会比较长。
但是后面耗时就很少,但是随着数据量的增长forEach的效率是最好的。
ArrayList排序方式