2020-11-05

集合
在這裏插入圖片描述
1集合只能存儲引用類型
注意:雖然集合不能存儲基本數據類型,但是可以存儲基本數據類型的包裝類類型

2.集合頂層父類爲什麼設計成接口而不設計成普通類?
因爲我們認爲容器中的元素有不同的特點:
a.是否有序 【存儲有序,怎麼樣存進去的就怎樣出來】
b.是否唯一
c.是否可以存儲null值
d.是否可排序
e.是否安全
f.容器存取的效率
數據結構 【數據的存儲方式】
針對不同的特點會有不同的實現,那麼這個時候父類必須設計成接口,子類根據不同的數據結構和實現方式實現自己的增刪查改的功能,所以父類設計爲接口。

collection接口

特點
1 單列集合的根接口
2 接口中,部分集合有序,可重複【list】,部分集合無序【set】
3 無具體實現
遍歷方法
Objict[] toArray() 將集合轉換成數組
T[] toArray(T[] a)泛型方法,將集合轉換成數組
Iterator iterator()返回在此collection的元素上進行迭代的迭代器
For(元素類型 元素名 : 集合) {
通過元素名操作元素;
}
1.foreach簡化遍歷
2.Foreach本質還是使用了迭代器

## Collection集合去除重複元素

1.創建一個新的集合,然後使用地址傳遞
(1)如果比較的是系統類,String 不需要重寫equals方法
(2)如果比較的是自定義對象,需要自己根據需求重寫equals方法

泛型

泛型的特點
1.泛型具備傳遞性
2.泛型可以定義多個
3.泛型只能設置引用數據類型
4.泛型命名可以是A~Z之間
泛型的分類
泛型類: 把泛型定義在類上
泛型接口: 把泛型定義在接口上
泛型方法: 把泛型定義在方法上
泛型的好處
1.消除了黃色警告線
2.去除類型轉換,提高了效率
3.提高了安全性,避免了類型轉換異常
4.簡化了代碼
5.提高了代碼的擴展和可維護性
泛型限定符

<?> : 代表任意類型 <? extends E>: 代表泛型可以是E類型或者E的子類 <? super T>: 代表泛型可以是 T類型或者是 T 的父類