java的List详解

本文详细解析了Java中的List接口实现类ArrayList和LinkedList的区别,包括它们的存储结构、增删查改性能以及适用场景。同时,介绍了自定义对象在集合中的存储以及数据结构的相关概念,如逻辑结构和物理结构。

List详解

ArrayList与LinkedList对⽐

相同点:
都是List集合的常⽤的实现类。
对集合中的元素操作的⽅法基本⼀致。
都是线程不安全的
不同点
ArrayList底层实现是数组, 使⽤数组这种数据结构进⾏数据的存储。
LinkedList底层实现是双链表, 使⽤双链表这种数据结构进⾏数据的存储。

数组与链表结果特点⽐较:
数组实现功能时查找快,添加删除慢
链表查找慢,添加删除快

ArrayList与LinkedList的使⽤场景:
如果对集合中的元素, 增删操作不怎么频繁, 查询操作⽐较频繁。 使⽤ArrayList。
如果对集合中的元素, 增删操作⽐较频繁, 查询操作不怎么频繁。 使⽤LinkedList。

集合对⾃定义对象的存储

​ 类分成系统类和⾃定义类
​ 系统类往往已经重写了tostring(),equals(),hashcode()等⽅法
​ ⾃定义类,为了实现我们的功能,往往我们需要重写⽗类的常⽤⽅法,⽐如:tostring(),equals(),hashcode()

LinkedList

对于LinkedList的特有⽅法对⽐:
jdk1.6以前的删除获取⽅法,拿不到元素报异常
jdk1.6以后的删除获取⽅法,拿不到元素返回null
所以建议使⽤1.6之后的.

数据结构

数据结构定义

数据结构是计算机存储、组织数据的⽅式,是相互之间存在⼀种或多种特定关系的数据元素的集合,即带“结构”的数据元素的集合。“结构”就是指数据元素之

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值