1.Collection集合 它是单列集合的根
List Set 接口
ArrayList LinkedList
2.Collection常用方法
add(ele) remove(ele) removeif(Lambda) clear() contains(ele) size() empty()
由于Collection没有索引 所以必须使用通用遍历方式迭代器
3.迭代器
1.获取迭代器 集合对象.iterator() 适用于所有单列集合 因为Collection extends Iterable
2.判断当前索引位是否有元素 it.hasNext();
3.如果有元素 it.next() 取出元素 并将指针指向下一个索引位 i++
4.迭代器的删除
it.remove();删除当前指向的元素 底层也有i--
5.增强for
for(集合中存储的数据类型 自己定义的变量名 : 集合或者数组)
for(String s : list)
增强for底层就是迭代器 但是不能修改集合中的元素 因为是将集合中每个元素 转存到 变量s中
6.三种遍历方式的使用时机:
1.fori: 操作索引的时候使用
2.迭代器: 遍历过程中需要删除元素的时候使用 可以遍历没有索引的集合
3.增强for: 底层是迭代器 迭代器能遍历的它都能 但是不能修改集合中原有的元素 可以简化迭代器遍历 只做遍历的时候推荐使用
7.List集合
1.有序: 保证存入元素顺序和取出元素顺序一致 底层是数组
2.有索引: 可以通过索引操作元素
3.可重复: 可以存储重复的元素
8.ArrayList特有方法 都是根索引有关的方法
//插队 add(index,ele) 删除 remove(index) 修改 set(index,ele) 获取 get(index)
9.数据结构
1.栈: 先进后出 手枪弹夹
2.队列: 后进先出 安检通道
3.数组: 有索引 所以查询效率一样 查询快 但是增删慢 中间位置增删后续所有元素都需要移动
4.链表: 单向链表 只记录下一个链表节点的地址 增删快 只影响旁边两个元素 查询慢 需要全链表遍历
双向链表 记录前一个和后一个节点的地址 擅长操作头和尾 遍历会判断元素离哪边近 哪边就头
5.链表特有方法 addFirst addLast removeFirst removeLast getFiset getLast
Collection集合
最新推荐文章于 2024-07-08 14:58:49 发布