Day-09

目录

Array和ArrayList的区别是什么?

ArrayList和LinkedList的区别是什么?

你知道几种遍历ArrayList的方式

整理ArrayList和LinkedList的常用方法


Array和ArrayList的区别是什么?

Array是数组,ArrayList是类

Array是定长的(需要手动扩容),ArrayList长度可变(使用过程中自动扩容)

ArrayList的底层是Array


ArrayList和LinkedList的区别是什么?


1.底层数据结构实现︰ArrayList底层数据结构是动态数组,而 LinkedList的底层数据结构是双向链表
2.随机访问(即读)效率∶ArrayList比LinkedList在随机访问的时候效率要高,因为ArrayList底层是数组,可以通过索引号快速访问,LinkedList是通过二分查找法遍历链表节点进行查找的
3.增加和删除效率∶在非首尾的增加和删除操作,LinkedList 要比 ArrayList 效率要高,因为ArrayList增删操作需要大量的前移或后移,这个过程中涉及到大量的赋值操作比较耗时间,LinkedList只需要修改节点对象的左右指针即可。

4.内存空间占用:LinkedList 比 ArrayList更占内存,因为 LinkedList的节点除了存储数据,还存储了两个引用,一个指向前一个元素,一个指向后一个元素。
5.综合来说,在需要频繁读取集合中的元素时,更推荐使用ArrayList,而在插入和删除操作较多时,更推荐使用 LinkedList。

你知道几种遍历ArrayList的方式

四种办法

 

 


整理ArrayList和LinkedList的常用方法

 

ArrayList 方法

add() 将元素插入到指定位置的 arraylist 中 addAll() 添加集合中的所有元素到 arraylist 中
clear() 删除 arraylist 中的所有元素 clone() 复制一份 arraylist contains()
判断元素是否在 arraylist get() 通过索引值获取 arraylist 中的元素 indexOf() 返回
arraylist 中元素的索引值 removeAll() 删除存在于指定集合中的 arraylist 里的所有元素 remove()
删除 arraylist 里的单个元素 size() 返回 arraylist 里元素数量 isEmpty() 判断
arraylist 是否为空 subList() 截取部分 arraylist 的元素 set() 替换 arraylist
中指定索引的元素 sort() 对 arraylist 元素进行排序 toArray() 将 arraylist 转换为数组
toString() 将 arraylist 转换为字符串 ensureCapacity() 设置指定容量大小的 arraylist
lastIndexOf() 返回指定元素在 arraylist 中最后一次出现的位置 retainAll() 保留 arraylist
中在指定集合中也存在的那些元素 containsAll() 查看 arraylist 是否包含指定集合中的所有元素
trimToSize() 将 arraylist 中的容量调整为数组中的元素个数 removeRange() 删除 arraylist
中指定索引之间存在的元素 replaceAll() 将给定的操作内容替换掉数组中每一个元素 removeIf() 删除所有满足特定条件的
arraylist 元素 forEach() 遍历 arraylist 中每一个元素并执行特定操作

 LinkedList方法:

public boolean add(E e) 链表末尾添加元素,返回是否成功,成功为 true,失败为 false。 public
void add(int index, E element) 向指定位置插入元素。 public boolean
addAll(Collection c) 将一个集合的所有元素添加到链表后面,返回是否成功,成功为 true,失败为 false。
public boolean addAll(int index, Collection
c) 将一个集合的所有元素添加到链表的指定位置后面,返回是否成功,成功为 true,失败为 false。 public void
addFirst(E e) 元素添加到头部。 public void addLast(E e) 元素添加到尾部。 public
boolean offer(E e) 向链表末尾添加元素,返回是否成功,成功为 true,失败为 false。 public boolean
offerFirst(E e) 头部插入元素,返回是否成功,成功为 true,失败为 false。 public boolean
offerLast(E e) 尾部插入元素,返回是否成功,成功为 true,失败为 false。 public void
clear() 清空链表。 public E removeFirst() 删除并返回第一个元素。 public E
removeLast() 删除并返回最后一个元素。 public boolean remove(Object
o) 删除某一元素,返回是否成功,成功为 true,失败为 false。 public E remove(int
index) 删除指定位置的元素。 public E poll() 删除并返回第一个元素。 public E
remove() 删除并返回第一个元素。 public boolean contains(Object o) 判断是否含有某一元素。
public E get(int index) 返回指定位置的元素。 public E getFirst() 返回第一个元素。 public
E getLast() 返回最后一个元素。 public int indexOf(Object o) 查找指定元素从前往后第一次出现的索引。
public int lastIndexOf(Object o) 查找指定元素最后一次出现的索引。 public E
peek() 返回第一个元素。 public E element() 返回第一个元素。 public E
peekFirst() 返回头部元素。 public E peekLast() 返回尾部元素。 public E set(int
index, E element) 设置指定位置的元素。 public Object clone() 克隆该列表。 public
Iterator descendingIterator() 返回倒序迭代器。 public int size() 返回链表元素个数。
public ListIterator listIterator(int index) 返回从指定位置开始到末尾的迭代器。 public
Object[] toArray() 返回一个由链表元素组成的数组。 public T[] toArray(T[]
a) 返回一个由链表元素转换类型而成的数组。
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值