集合進階(一部分)

結合結構

黑馬全套Java教程(八):集合進階_數據

1.Collection(接口)

Collection的Contains方法底部是運用equals方法進行比較,如果要比較對象需要在對象的JAVAb中重寫equals代碼. 補需要親自寫,equals()安定hashCode()能便利。

2.遍歷器

(1).迭代器:1.創建集合 2.添加數據 3.創建迭代器(創建指針默認指向0位置) 4.hasNext確定是否有數據 5.next獲取並且將指針移到下一位
sp:1. 迭代器遍歷完後指針不會自動返回,指針指向集合之外只能重新創建一個新的迭代器,再次使用會報錯NoSuchElementException
2. 迭代器在遍歷的時候不能用集合的方法增加或者刪除數據。
3.迭代器在遍歷的時候只能用一次next方法。多次使用next方法有時會使箭頭指向集合外while(it。haxNext){it。next();it。next();}


2).加強for(所有單列集合和數組才能用

黑馬全套Java教程(八):集合進階_刪除數據_02

sp:for裏面的s會再遍歷時創建一個空間接受集合裏面的每個數據,並且使用他,但是改變s只會暫時改變s空間裏的值不會改變集合裏的值。

(3).lambda表達式

匿名類部類形式:

forEach底部源碼是使用for循環遍歷集合得到每一個元素,再將得到的元素傳給下面的accept方法,s同加強for中的s。

黑馬全套Java教程(八):集合進階_迭代器_03

lambda形式

黑馬全套Java教程(八):集合進階_數據_04

3.List(接口)

1.remove方法中存在刪除數據與索引一致的情況(1,2,3)。數據優先被視為索引。因為如果被調用的方法出現了重載現象,優先調用形參和形參相似的方法

4.五種遍歷方式總結

黑馬全套Java教程(八):集合進階_迭代器_05