千鋒教育Java入門全套視頻教程(java核心技術(shù),適合java零基礎(chǔ),Java

集合
1、概念:集合是一種用于存儲和操作一組對象的數(shù)據(jù)結(jié)構(gòu)。它提供了一系列的接口和類,用于處理不同類型的集合,如列表(List)、集(Set)和映射(Map)等。
??集合除了有數(shù)組沒有的功能外,集合還從實現(xiàn)形式進(jìn)行了變化,數(shù)組是線性表,集合可以以鏈表,hash表,樹等形式出現(xiàn),原因是不同的場景我們要用不同的集合。
1.1、集合整體框架:Java的集合框架從整體上可以分為兩大家族。
1、 Collection(接口)家族。該接口下的所有子孫均存儲的是單一對象。 Add(s)
2、 Map(接口)家族。該接口下的所有子孫均存儲的是key-value(鍵值對)形式的數(shù)據(jù)。
Put(key,value)
另外還有三個分支,均是為上述兩大家族服務(wù)的。
1、 Iterator(迭代器)家族。主要用于遍歷Colleciton接口的及其子類而設(shè)計。
2、 Comparator(比較器), 在集合中存儲對象時候,用于對象之間的比較
3、 Collecitons是工具類。注意該類名帶個s,一般就表示工具類。里面提供了N多靜態(tài)方法,來對Colleciton集合進(jìn)行操作。
2、Collection接口:Collection接口-定義了存取對象的方法。有兩個非常常用的子接口:
??1、List接口:存放的元素有序且允許有重復(fù)的集合接口。
??2、Set接口:存放的元素?zé)o序不包含重復(fù)的集合接口。
說明:
“有序”-元素存入的順序與取出的順序相同.
“無序”—元素存入的順序與取出的順序不相同
3、Collection接口中的常用方法:
int size();//大小---現(xiàn)有能訪問到的元素個數(shù)
boolean isEmpty();//判斷這個集合是否為空 size()=0表示集合為空
boolean contains(obbject o);//集合中是否包含o這個對象
Iterator<E> iterator();//集合中獲取迭代器的方法
object[] toArray();//把集合中的對象轉(zhuǎn)為一個數(shù)組
boolean add(E e);//添加元素
boolean remove(object o);//刪除o這個元素
boolean containsAll(Collection<?> c);//包含所有的---先判斷c這個集合是不是當(dāng)前的集合子集(有可能是全子集)
boolean addAll(Collection<? extends E> c);//把c這個集合中所有元素添加到當(dāng)前集合中----數(shù)學(xué)中叫做求并集
boolean removeAll(Collection<?> c);//從當(dāng)前集合中刪除所有的c集合中的元素---差集
boolean retainAll(Collection<?> c);//保留當(dāng)前集合和c集合共有的元素---交集
void clear(); //清除所有的元素
boolean equals(object o);//比較兩個集合是否相等
int hashCode();//hash值
Collection接口規(guī)定是增刪方法,無改查的方法
List:線性結(jié)構(gòu),就是元素之間依次排列,是有順序的,也分為兩種:
1、ArrayList:動態(tài)數(shù)組,就是數(shù)組的改良
2、LinkedList:鏈表,這里是雙向鏈表
4、泛型概念:泛型,即“參數(shù)化類型”。一提到參數(shù),最熟悉的就是定義方法時有形參,然后調(diào)用此方法時傳遞實參。那么參數(shù)化類型怎么理解呢?
??顧名思義,就是將類型由原來的具體的類型參數(shù)化,類似于方法中的變量參數(shù),此時類型也定義成參數(shù)形式(可以稱之為類型形參),然后在使用/調(diào)用時傳入具體的類型(類型實參)。
??泛型的本質(zhì)是為了參數(shù)化類型(在不創(chuàng)建新的類型的情況下,通過泛型指定的不同類型來控制形參具體限制的類型)。也就是說在泛型使用過程中,
??操作的數(shù)據(jù)類型被指定為一個參數(shù),這種參數(shù)類型可以用在類、接口和方法中,分別被稱為泛型類、泛型接口、泛型方法。
4.1、特性:1、泛型是用來規(guī)定集合里面數(shù)據(jù)類型的。
2、Java中的泛型,只在編譯階段有效。在編譯過程中,正確檢驗泛型結(jié)果后,會將泛型的相關(guān)信息擦出,并且在對象進(jìn)入和離開方法的邊界處添加類型檢查和類型轉(zhuǎn)換的方法。也就是說,泛型信息不會進(jìn)入到運(yùn)行時階段。
對此總結(jié)成一句話:泛型類型在邏輯上看以看成是多個不同的類型,實際上都是相同的基本類型。