集合(List)---ArrayList和LinkedList

一、ArrayList
1.ArrayList:其实是一个长度可变的数组:像数组一样提供下标访问数组,插入,移除元素会比较慢。
它的内部封装了一个长度可变的数组对象(初始容量为10(1.8之后初始容量为0,第一次调用add()方法时为10),根据元素的添加进行扩容操作)
在这里插入图片描述
2.通过源码的构造函数看(有三个构造函数):
①无参的构造方法:构造一个默认初始容量为10的空列表
在这里插入图片描述
②含参为一个指定元素列表
在这里插入图片描述
③含参为一个int型的指定数据:初始容量自己设定
在这里插入图片描述
3.ArrayList实现了List接口,在此基础上还多加了四个方法:
在这里插入图片描述
4.我们主要来看一下扩容的实现ensureCapacity(int minCapacity)

在这里插入图片描述
初始分配容量为10,当添加元素时进入扩容函数判断是否需要扩容:
在这里插入图片描述
进入此方法我们可以看到:在这里插入图片描述
主要在grow()中进行扩容的操作:在这里插入图片描述
二、LinkedList:

  1. LinkedListList :List接口的链接列表实现(初始不需要内存分配)。分配内存时,不要求是连续的,插入、删除比较快,访问比较慢(遍历)。
  2. 构造函数:在这里插入图片描述
    3.主要方法:
    添加元素到列表头部:在这里插入图片描述
    添加元素到列表尾部:在这里插入图片描述
    获取第一个元素(不删除):在这里插入图片描述
    获取第一个元素并删除:
    在这里插入图片描述
    获取最后一个元素(不删除):在这里插入图片描述
    获取并删除最后一个元素:
    在这里插入图片描述
    迭代器:
    从后往前遍历:
    在这里插入图片描述
    从指定位置开始遍历;
    在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值