[Java][集合][ List系列 ][ List系列总结及其它相关类 ]

List的几种实现类

(04) ArrayList, LinkedList, Vector, Stack是List的4个实现类。
  ArrayList 是一个数组队列,相当于动态数组。它由数组实现,随机访问效率高,随机插入、随机删除效率低。
  LinkedList 是一个双向链表。它也可以被当作堆栈、队列或双端队列进行操作。LinkedList随机访问效率低,但随机插入、随机删除效率低。
  Vector 是矢量队列,和ArrayList一样,它也是一个动态数组,由数组实现。但是ArrayList是非线程安全的,而Vector是线程安全的。但从JDK1.2已被抛弃,使用List具体实现类代替
  Stack 是栈,它继承于Vector。它的特性是:先进后出(FILO, First In Last Out)。
  

如何选择适用List类

凡列表、链表、数组及周边应用,均可考虑List类应用,具体根据不同特性来选择。
(01) 对于需要快速插入,删除元素,应该使用LinkedList。
(02) 对于需要快速随机访问元素,应该使用ArrayList。

关于操作性能

底层由数组实现的,索引访问最快。
底层由链表机制的,索引访问慢,但遍历快,链式访问快

(01) 对于需要快速插入,删除元素,应该使用LinkedList。
(02) 对于需要快速随机访问元素,应该使用ArrayList。

多线程下的List类使用

1、自己实现同步操作,保证读写列表的操作是同步的
2、使用 Collections.synchronizedList 方法来“包装”该列表
参考: [Java][集合][List系列][LinkedList]
3、使用java.util.concurrent包下的适用替代类

其它相关操作

List的复制

1、System.arraycopy()方法
public static void arraycopy(Object src,
int srcPos,
Object dest,
int destPos,
int length)
从指定源数组中复制一个数组,复制从指定的位置开始,到目标数组的指定位置结束。

2、Arrays.copyXXX()系列方法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值