1.單列集合頂層接口Collction
集合體系結構
注意:因為Collection定義的方法是共性的,使用不能通過搜引來刪除,只能通過元素的對象進行刪除,返回值是boolean類型。例如我添加了"aaa"進List集合,刪除則要對象名.remove("aaa");
2.迭代器
迭代器遍歷:
迭代器遍歷的使用:
注意:下面的1.沒有元素異常? ? ? ? ? ? ? 下面的2.如果想遍歷第二遍則需要在定義一個對象
如果刪除集合的元素,要么就在迭代器定義之前刪除,要么就在迭代器遍歷的時候,用迭代器刪除的方式進行刪除,該刪除不會刪除集合里的元素,只會刪除迭代器里面的元素。
3.增強for遍歷
上方的s是指第三方變量
4.Lambda表達式遍歷
三種通用的遍歷方式:
5.List中常見的方法和五種遍歷方式
List特有方法:(index指搜引,element指對象)
注意:add的添加是在指定位置進行添加,如果原有位置有元素存在,則往后移動(是后面的所有元素往后移動)
List的五種遍歷方式:迭代器遍歷,列表迭代器遍歷,增強for遍歷,Lambda表達式遍歷,普通for遍歷(因為List集合存在索引)
其余兩種遍歷方式:
5種的if語句是在集合里元素”bbb“的后面添加元素”qqq“;
6.泛型類,泛型方法,泛型接口
比如:此時的泛性是String,所有只能添加String類型的數據
泛型類:
當我們在main函數中運行的時候,可以給E繼續數據類型的賦值,這里賦值為String,代表E就是String,所有在main輸入時候就的輸入String類型的數據,在MyArrayList中也是把E當作String來看的。????????
泛型方法:
當方法中形參類型不確定時有以下方案:
1.使用類名后面定義的泛型(所有方法都適用)
2.在方法申明上定義自己的泛型(只有本方法能用)
泛型接口:
它的兩種使用方式:
1.實現類給出具體的類型
2.實現類延續泛型,創建實現類對象時再確定類型
1.
2.左邊創建對象時候定義Stri
ng
7.set集合中的HashSet和Treeset
set序列集合:添加的元素是無序,不重復,無搜引的
無序:存取順序不一樣
不重復:可以去除重復
無搜引:沒有帶搜引的方法,所有不能使用普通遍歷for循環,也不能通過搜引獲取元素
set集合的實現類:
HashSet:無序,不重復,無搜引LinkedHashSet:有序,不重復,無搜引
TreeSet:可排序,不重復,無搜引
Set接口中的方法基本上與Collection的API一致
set演示:
HashSet:
哈希值:對數的整數表現形式
Alt加Insert出現,并選擇藍標,讓系統自動重寫方法,此時性值一樣計算出哈希值就是一樣的了。
HashSet的底成原理:
LinkHashSet底層原理:
使用的是雙向鏈表,所以可以保證存儲順序是有序的。
光去重的話,HashSet的時間,空間復雜度更低!(單鏈表)