集合——List接口(ArrayList、LinkedList源码剖析)

list接口是一个有序的集合,其元素以线性方式存储,集合中允许存放重复的元素
list接口继承collection接口

public interface List<E> extends Collection<E> { }

在这里插入图片描述
List接口下的两个实现类ArrayList,LikedList的异同电路,各有优势(应用场景):
相同点:

  • 继承关系:list接口的实现类,具有list提供的所有方法
  • 有序性:数据都是插入有序的;
  • 重复性:元素都可以重复
  • null值:都可以存储null值
  • 安全性问题:都是非线程安全的

不同点:

  • 数据结构:ArrayList基于数组,LinkedList基于双向链表
  • 特有方法LinkedList具有特有的方法,例如addFirst(),addlist()因为实现了Deque接口
  • 效率:ArrayList查询修改效率高O(1),LinkedList添加,删除效率高(先找O(n)后删O(1),ArrayList添加元素往数组尾部添加(趋近于O(1),在不扩容的情况下就是O(1)))
  • 应用场景: 在查询较高的业务场景下优先考虑ArrayList,在修改。添加等操作较多的场景下优先考虑LinkedList
    在这里插入图片描述

ArrayList:

每一个ArrayList实例都有一个默认的容量(10个),即存储元素的个数,这个容量的可以随着元素的增加而自动变大(每次是分配5原空间的1.5倍)。
ArrayList的继承关系:
在这里插入图片描述

属性:
在这里插入图片描述
构造方法:
在这里插入图片描述
在这里插入图片描述
增删查改:
增:
在这里插入图片描述
在这里插入图片描述
增加的时候就要考虑扩容问题:增长方式是1.5倍扩容
在这里插入图片描述


在这里插入图片描述
在这里插入图片描述
查、改
在这里插入图片描述

LinkedList:

属性:
在这里插入图片描述
构造函数

在这里插入图片描述
增删查改:
增:
ArrayList里面有给任意位置进行插入元素,而LinkedList里面只有头插和尾插
在这里插入图片描述

在这里插入图片描述
查、改:

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值