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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值