0
点赞
收藏
分享

微信扫一扫

Java学习笔记 List集合

眸晓 2022-01-08 阅读 83

1. List集合特点

1.有序,可重复,可索引
2.所有的方法围绕着这些特性提出,特别是可索引

2. List独有api

主要是围绕可索引这一特性提出

3. List的遍历方式

1.Collection集合的三种遍历方式:迭代器,foreach(增强for),lambda表达式
2.利用索引遍历,list.size()

4. List实现类的底层原理

4.1 ArrayList底层

基于数组实现,特点就是查询快,增删比较慢
最开始是一个大小为0的数组
第一次创建集合并添加首个元素是,创建一个默认大小为10的数组,size记录了当前元素个数,同时也是下一个插入位置

4.1.1 ArrayList的删

删除元素:删除是每次进行数组复制,然后让旧的elementData置为null进行垃圾回收

4.1.2 ArrayList的扩容

当插入元素超过数组大小,会调用grow函数来进行扩容到原来的1.5倍

4.2 LinkedList底层

基于双链表实现,特点是查询慢,对首尾元素操作很快,可以用来实现stackqueue

4.2.1 LinkedList独有的api

主要是对双链表头尾进行的操作
在这里插入图片描述

5. 并发修改异常

集合中找元素并删除时出现异常,即结构发生改变时发生的异常

5.1 使用迭代器遍历删除当前元素

如果删除操作使用list.remove(),会出现数组越界的风险
要用it.remove()即迭代器自己的方法

5.2 foreach遍历删除

不能用,会提示并发修改异常

5.3 使用for语句遍历删除元素

可以从下标大往小删除,或者每次下标自减

举报

相关推荐

0 条评论