Java中ArrayList、Vector、LinkedList浅析

本文深入探讨了Java集合框架中的ArrayList、Vector与LinkedList的内部实现原理、性能特点及应用场景,提供了针对不同需求的最优选择策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. ArrayList、Vector采用数组方式存储数据,此数组元素数大于实际存储的数据,以便增加和插入元素。都允许直接序号索引元素,但是插入数据要设计到数组元素移动等内存操作,所以索引数据快插入数据慢。

LinkedList使用双向链表实现存储,按序号索引数据需要进行向前或向后遍历,但是插入数据时只需要记录本项的前后项即可,所以插入数度较快!


2.

Collection

    ├List(允许有相同的元素)
    │   ├LinkedList
    │   ├ArrayList     (允许所有元素,包括null; 没有同步,所以不是线程安全的)
    │   └Vector          (类似ArrayList,但是Vector是同步的,线程安全)
    │     └Stack
    └Set(不包含重复的元素)


Map(提供key到value的映射。一个Map中不能包含相同的key,每个key只能映射一个value)

    ├Hashtable  (key或value不能为空;同步)
    ├HashMap    (允许null,即null value和null key;非同步的)
    └WeakHashMap


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值