java集合
一.分兩部分:
一部分是一個一個存(稱collection)套利。
另一部分是一對一對存(稱Map)。
集合主要有3種重要的類型:(集合只能存引用類型)
List :是一個有序集合,可以放重復(fù)的數(shù)據(jù)障斋。
Set:是一個無序集合贞瞒,不允許放重復(fù)的數(shù)據(jù)
Map:是一個無序集合,集合中包含一個鍵對象摆寄,一個值對象失暴,鍵對象不允許重復(fù)。值可以重復(fù)
collection接口微饥。Iterable (形容詞:可迭代的)所有集合的超級接口逗扒,collection的父接口是Interable(形容詞)可迭代的,所有的集合都是可迭代的欠橘,迭代就是遍歷矩肩。
(在Iterable接口里面有個方法 Iterator<T> iterator(),返回一個迭代器)
虛線代表實現(xiàn)類,實線代表子接口(接口和接口之間是依賴的關(guān)系比如:Collection和Iterator )另外接口和接口的關(guān)系還有繼承:Set和SortedSet之間是繼承關(guān)系肃续。
程序分編譯期和運行期黍檩,編譯期看的是接口里面的方法,真正運行底層會有對象始锚,那個對象肯定實現(xiàn)了接口刽酱。
(collection它上面有個接口叫Iterable,iterable有個iterator方法瞧捌,就證明collection也有這個iterator方法棵里,表示所有的集合都是可迭代的润文,所以,所有的集合都可以調(diào)用iterator方法殿怜,集合調(diào)用iterator方法是干什么的呢典蝌?得到它所依賴的迭代器,拿到迭代器干什么呢头谜?遍歷集合赠法。迭代器是通過什么樣的方法去迭代這個集合的呢?會發(fā)現(xiàn)有三個方法乔夯,這三個方法結(jié)合起來完成集合的(迭代)或遍歷)
1.boolean? hasNext() 用來判斷集合中是否有下一個元素可以迭代砖织。如果返回true,說明可以迭代末荐。
2.E ?next() 用來返回迭代的下一個元素侧纯,并把指針向后移動一位。
3.void.remove()從迭代器指向的collection種移除迭代器返回的最后一個元素(可選操作)
Collection接口:常用的子接口有:List接口甲脏、Set接口眶熬。
List接口常用的子類有:ArrayList類、LinkedList類块请。Vector(面試會有娜氏,但用的很少)
Set接口常用的子類有:HashSet類、LinkedHashSet類墩新。
(list贸弥, set 繼承于Collection,而這四個類實現(xiàn)了List和Set接口)
我們編程可以是面向接口編程的海渊,底層是實現(xiàn)的接口的
二.Map集合圖解
三.單向鏈表圖解
Collection接口:常用的子接口有:List接口绵疲、Set接口。
List接口常用的子類有:ArrayList類臣疑、LinkedList類盔憨。
Set接口常用的子類有:HashSet類、LinkedHashSet類讯沈。
(list郁岩, set 繼承于Collection,而這四個類實現(xiàn)了List和Set接口)