侧边栏壁纸
  • 累计撰写 781 篇文章
  • 累计创建 1 个标签
  • 累计收到 1 条评论
标签搜索

List

Dettan
2021-04-10 / 0 评论 / 0 点赞 / 96 阅读 / 1,188 字
温馨提示:
本文最后更新于 2022-04-30,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

ArrayList
主要是引入了index,所以多的方法都是和index相关的增删改查
初始大小是10,空间增长为现空间的1/2
add 可以插入到指定位置,1,2,3 执行add(1,4)之后为 1,4,2,3
get(int) 配合size()可以用for循环遍历了
set(int ,object)
indexOf , lastIndexOf
E remove(int index)
移除此列表中指定位置上的元素。
protected void removeRange(int fromIndex, int toIndex)
移除列表中索引在 fromIndex(包括)和 toIndex(不包括)之间的所有元素。
操作变长类型函数(变长类型里好像都有,例如 StingBuilder类
trimToSize()
将此 ArrayList 实例的容量调整为列表的当前大小。
ensureCapacity(int minCapacity)
如有必要,增加此 ArrayList 实例的容量,以确保它至少能够容纳最小容量参数所指定的元素数。
LinkList
用 链表 实现的
这个类可以用来实现 堆栈、队列、双端队列
线程不安全,即使按类说明里的写上一句 List list = Collections.synchronizedList(new LinkedList());也只能调用List的方法,List不能改,只能写List。
栈 push , pop
队列 addLast , pollFirst(移除并返回第一个元素,空会返回null) , deleteFirst(移除并返回第一个元素,空会抛异常NoSuchElementException)
双端队列 addFirst , addLast , pollFirst , pollLast , deleteFirst , deleteLast
get set add remove indexOf peek(读取头部)
遍历
for 配合get(i)
linkIterator

vector
数组方式存储
同步
默认增长一倍.
ArrayList 和 LinkedList 有什么区别。
ArrayList和LinkedList都实现了List接口,有以下的不同点: 1、ArrayList是基于索引的数据接口,它的底层是数组。它可以以O(1)时间复杂度对元素进行随机访问。与此对应,LinkedList是以元素列表的形式存储它的数据,每一个元素都和它的前一个和后一个元素链接在一起,在这种情况下,查找某个元素的时间复杂度是O(n)。 2、相对于ArrayList,LinkedList的插入,添加,删除操作速度更快,因为当元素被添加到集合任意位置的时候,不需要像数组那样重新计算大小或者是更新索引。 3、LinkedList比ArrayList更占内存,因为LinkedList为每一个节点存储了两个引用,一个指向前一个元素,一个指向下一个元素。
0

评论区