Update doc

This commit is contained in:
icecat
2025-04-25 16:59:27 +08:00
parent 2cf455dc1f
commit 1d7f11d26d
35 changed files with 282 additions and 0 deletions

View File

@@ -0,0 +1,104 @@
# 集合:
**总结:**
<img src="https://gitee.com/icecat2233/picture/raw/master/20250417165937735.png" alt="image-20250417165922953" style="zoom:50%;" />
其中Collection接口中又分为**set**接口和**list**接口
## Collection:
<img src="https://gitee.com/icecat2233/picture/raw/master/20250417165721995.png" alt="image-20250417165713561" style="zoom:50%;" />
**注意事项:**
remove and contains方法依赖于底层equals方法
## 集合通用遍历方法:
### 1.迭代器 2.增强for循环 3.forEach
首先获取迭代器:
`Iterator<Student> it = c.iterator();`
其次判断循环是否还有元素
`hasNext()方法` `next()方法`
注意next()方法只调用一次,要不然会引起指针异常
### 迭代器源码解析:
![image-20250420172303418](https://gitee.com/icecat2233/picture/raw/master/20250420172317333.png)
### **三种方法演示:**
```java
public class Test2 {
public static void main(String[] args) {
Collection<Student> c = new ArrayList<>();
c.add(new Student("小鸟游六花",15));
c.add(new Student("小鸟游七花",15));
c.add(new Student("小鸟游八花",15));
//迭代器循环
Iterator<Student> it = c.iterator();
while (it.hasNext()){
Student stu = it.next();
System.out.println(stu.getName()+"---"+stu.getAge());
}
//增强for循环
for (Student stu:c){
System.out.println(stu);
}
//forEach遍历
c.forEach(student -> System.out.println(student));
}
}
```
# List集合
## list集合特点以及方法
<img src="https://gitee.com/icecat2233/picture/raw/master/20250425155619805.png" alt="image-20250425155604336" style="zoom:67%;" />
## 并发修改异常:
<img src="https://gitee.com/icecat2233/picture/raw/master/20250425154636875.png" alt="image-20250425154628294" style="zoom: 80%;" />
<img src="https://gitee.com/icecat2233/picture/raw/master/20250425155719001.png" alt="image-20250425155717100" style="zoom:80%;" />
## List集合的5种遍历方式
1. Iterator迭代器
2. 增强for循环
3. foreach
4. 普通for循环
5. ListIterator迭代器
# 数据结构:栈 队列 链表 数组
<img src="https://gitee.com/icecat2233/picture/raw/master/20250425163326284.png" alt="image-20250425163323615" style="zoom: 67%;" />
## 其中Arraylist集合扩容机制为
1. 在初始化时长度为0
2. 调用添加方法add时长度为10
3. 此后长度超过10时会将数组长度增加原来的1/2
#### **源码分析****此为长度还未超出10时的源码过程**
![image-20250425165520793](https://gitee.com/icecat2233/picture/raw/master/20250425165535349.png)
#### **此为超出10时源码过程**
![image-20250425165743512](imgh/image-20250425165743512.png)
## LinkedList特有方法
removeFirst() removeLast()