(以下內容全部來自上述課程)
1.集合體系結構
List系列集合:添加的元素是有序、可重復、有索引。
Set系列集合:添加的元素是無序、不重復、無索引。
2.Collection集合
Collection是單列集合的祖宗接口(不可直接創建對象),他的功能是全部單列集合都可以繼承使用的。
1.方法
2.細節
1.添加元素
List:永遠返回true,因為List系列是允許元素重復的。
Set:添加元素不存在返回true,如果已經存在返回false,因為set系列不允許重復。
2.刪除元素
因為Collection里面定義的是共性的方法,所以不能通過索引進行刪除。只能通過元素的對象進行刪除。
方法會有一個布爾類型的返回值,成功true,失敗false。
3.包含元素
底層是依賴equals方法進行判斷是否存在的。
所以,如果集合中存儲的是自定義對象,也想通過contains方法來判斷是否包含,那么在javabean類中一定要重寫contains方法(alt+insert)。
3.遍歷方式
1.迭代器遍歷
迭代器不依賴索引。
迭代器在Java中的類是Iterator,迭代器是集合專用的遍歷方法。
細節:
- 報錯NoSuchElementException
- 迭代器遍歷完畢,指針不會復位
- 循環中只能用一次next方法
- 迭代器遍歷時,不能用集合的方法進行增加或者刪除
如果實在要刪除,就用迭代器提供的remove方法進行刪除。
2.增強for遍歷
底層就是迭代器,為了簡化代碼書寫。
JDK5以后出現的,內部原理就是一個Iterator迭代器。
所有的單列集合和數組才能用增強for進行遍歷。
注意點:
s其實就是一個第三方變量,在循環的過程中依次表示集合中的每一個數據。
集合名字.for:快速生成方式
細節:
修改增強for中的第三方變量(s),不會改變集合原本中的數據。
3.Lambda表達式遍歷
更簡單、更直接的遍歷集合的方式。
Collection<String> coll = new ArrayList();
coll.add("zhangsan");
coll.add("lisi");
coll.add("wangwu");
coll.forEach(s -> System.out.println(s));
3.List集合
- 有序:存和取的元素順序一致
- 有索引:可以通過索引操作元素
- 可重復:存儲的元素可以重復
1.特有方法
2.遍歷方式
已學:迭代器遍歷、增強for遍歷、Lambda表達式遍歷、普通for循環(因為List集合存在索引)
1.列表迭代器遍歷
ps:和迭代器差不多,就多了兩個不常用的方法。
2.五種遍歷方式對比
- 迭代器遍歷:在遍歷的過程中需要刪除元素。
- 列表迭代器:在遍歷的過程中需要添加元素。
- 僅僅想遍歷:增強for或者lambda表達式。
- 普通for:便利的時候想操作索引。
4.數據結構
計算機存儲、組織數據的方式。
須知:
- 每種數據結構長什么樣子?
- 如何添加數據?
- 如何刪除數據?
1.棧
后進先出、先進后出。
2.隊列
先進先出、后進后出
3.數組
4.鏈表
鏈表中的結點是獨立的對象,在內存中是不連續的,每個結點包含數據值和下一個結點的地址。
鏈表查詢慢,無論查詢哪個數據都要從頭開始找。
鏈表的增刪相對快。