集合進階(一部分)
結合結構
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(所有單列集合和數組才能用
sp:for裏面的s會再遍歷時創建一個空間接受集合裏面的每個數據,並且使用他,但是改變s只會暫時改變s空間裏的值不會改變集合裏的值。
(3).lambda表達式
匿名類部類形式:
forEach底部源碼是使用for循環遍歷集合得到每一個元素,再將得到的元素傳給下面的accept方法,s同加強for中的s。
lambda形式
3.List(接口)
1.remove方法中存在刪除數據與索引一致的情況(1,2,3)。數據優先被視為索引。因為如果被調用的方法出現了重載現象,優先調用形參和形參相似的方法