java程序員如何學習集合容器、HashMap、TreeMap、LinkedHashMap

可關注小編私信“教程”,獲得下載地址---接上文

集合(容器)

目錄

•Map (HashMap LinkedHashMap TreeMap)

•Iterator

•使用泛型

•Collections

•集合術語辨析

•集合的選擇

1、Map

java程序員如何學習集合容器、HashMap、TreeMap、LinkedHashMap

2、Iterator

所有集合類均未提供相應的遍歷方法,而是把把遍歷交給迭代器完成。迭代器為集合而生,專門實現集合遍歷

Iterator是迭代器設計模式的具體實現

Iterator方法

boolean hasNext(): 判斷是否存在另一個可訪問的元素

Object next(): 返回要訪問的下一個元素

void remove(): 刪除上次訪問返回的對象。

問題:可以使用Iterator遍歷的本質是什麼

實現Iterable接口

For-each循環

增強的for循環,遍歷array 或 Collection的時候相當簡便

無需獲得集合和數組長度,無需使用索引訪問元素,無需循環條件

遍歷集合時底層調用Iterator完成操作

For-each缺陷:

數組:

•不能方便的訪問下標值

•不要在for-each中嘗試對變量賦值,只是一個臨時變量

集合:

•與使用Iterator相比,不能方便的刪除集合中的內容

For-each總結:

除了簡單遍歷並讀出其中的內容外,不建議使用增強for

3、ListIterator

ListIterator和Iterator的關係

public interface ListIterator extends Iterator

都可以遍歷List

ListIterator和Iterator的區別

使用範圍不同

• Iterator可以應用於更多的集合,Set、List和這些集合的子類型。

• 而ListIterator只能用於List及其子類型。

遍歷順序不同

• Iterator只能順序向後遍歷; ListIterator還可以逆序向前遍歷

•Iterator可以在遍歷的過程中remove();ListIterator可以在遍歷的過程中remove()、add()、set()

•ListIterator可以定位當前的索引位置,nextIndex()和previousIndex()可以實現。Iterator沒有此功能。

4、使用泛型

起因:

JDK1.4以前類型不明確:

裝入集合的類型都被當作Object對待,從而失去自己的實際類型。

從集合中取出時往往需要轉型,效率低,容易產生錯誤。

解決辦法:

泛型,在定義集合的時候同時定義集合中對象的類型

好處:

增強程序的可讀性和安全性

5、術語辨析

集合和數組的比較

ArrayList和LinkedList 的聯繫和區別

Vector和ArrayList的聯繫和區別

HashMap和Hashtable的聯繫和區別

集合和數組的比較

數組不是面向對象的,存在明顯的缺陷,集合完全彌補了數組的一些缺點,比數組更靈活更實用,可大大提高軟件的開發效率而且不同的集合框架類可適用於不同場合。具體如下:

1 : 數組容量固定且無法動態改變,集合類容量動態改變。

2:數組能存放基本數據類型和引用數據類型的數據,而集合類中只能放引用數據類型的數據。

3:數組無法判斷其中實際存有多少元素,length只告訴了array容量;集合可以判斷實際存有多少元素,而對總的容量不關心

4:集合有多種數據結構(順序表、鏈表、哈希表、樹等)、多種特徵(是否有序,是否唯一)、不同適用場合(查詢快,便於刪除、有序),不像數組僅採用順序表方式

5:集合以類的形式存在,具有封裝、繼承、多態等類的特性,通過簡單的方法和屬性調用即可實現各種複雜操作,大大提高軟件的開發效率。

6、Collections

Collection和Collections的區別

Collection是Java提供的集合接口,存儲一組不唯一,無序的對象。它有兩個子接口List和Set。

Java中還有一個Collections類,專門用來操作集合類 ,它提供一系列靜態方法實現對各種集合的搜索、排序、線程安全化等操作。

7、集合案例

案例1:添加和查看商品

使用集合模擬數據庫

添加商品

查看商品

案例2:完成購物車的添加和查看操作

購物車條目CartItem

購物車

完成添加操作

完成查看操作

完成刪除操作(可選)

8、總結

java程序員如何學習集合容器、HashMap、TreeMap、LinkedHashMap

java程序員如何學習集合容器、HashMap、TreeMap、LinkedHashMap

不知道有多少java程序員能看到這裡。

如果你依然覺得有些茫然,不如跟有多年Java開發經驗的資深工程師聊一聊。

每天2小時學習時間,密集輸入Java開發相關知識及經驗,幫你快速實現技術和職業成長上的突破。

只需要關注+轉發+評論,然後私信我“教程”就可以獲取了,方法很簡單,就看自己怎麼去把握了,看好你們哦!


分享到:


相關文章: