java中的List列表

List主要方法:

  1. E get(int index);取得索引在index的元素
  2. boolean add(E e);向表尾添加元素
  3. void clear();清除所有元素
  4. remove(int index);删除索引为index的元素

List有两种主要实现ArrayList和LinkedList,第一种是顺序表,第二种是链表。
这两种实现都是线程不安全的,至于为什么不把他们实现为线程安全,估计是基于性能考虑吧。

List还有一种实现为Vector,Vector和ArrayList很像,都是基于数组实现的,但是Vector是线程安全的,Vector每次扩容默认扩一倍,而ArrayList每次默认扩一般。

ArrayList和LinkedList可以用Collections.synchronizedList()来保证线程安全

List<T> synchronizedList(List<T> list);

输入一个List,返回一个线程安全的List,原理就是讲每个方法都加上同步语句。

参考:
https://javapapers.com/core-java/java-collection/difference-between-vector-and-arraylist-in-java/
https://docs.oracle.com/javase/8/docs/api/java/util/Collections.html#synchronizedList-java.util.List-
https://docs.oracle.com/javase/8/docs/api/java/util/Vector.html
https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html
https://docs.oracle.com/javase/8/docs/api/java/util/LinkedList.html

posted @ 2020-01-19 17:13  开局一把刀  阅读(25)  评论(0)    收藏  举报