4.畢向東_集合框架總結

1.基本概要
集合框架:Map+Collection

---->用集合幹嘛?
面向對象的事物使用對象&&對象存儲使用集合

---->幾種遍歷的方式:
1.傳統for:可以定義角標,比較完善。
2.高級for:只能獲取元素 不能對集合進行操作
3.迭代器:除了遍歷至少還可以remove集合中元素的動作 listiterator可以在遍歷過程中增刪改查

---->集合選擇:
實際需求沒有說保證元素唯一,一般選擇list集合即可。

---->直觀事例圖

2.集合和數組:

3.Set集合:
*元素是無序的
<存入和取出的順序不一定一致>
*元素不可以重複
<要保證元素的唯一性>

——>HashSet:
<沒有複寫方法之前使用操作系統底層計算哈西值>
先:hasCode()---->地址是否相同?
不同—>視爲不重複的 需要注意!!不會調用equals()
相同—>繼續判斷: 後: 調用equals()判斷 ---->是否是同一對象?
String類的equals方法源碼:
——>TreeSet:
<必須具備比較性,所以要定義好兩種中的一種排序方法>

—>排序時,主要條件相同時,一定要判斷一下次要條件
—>返回0的時候表示相同就可以確保元素的唯一性了。

1.元素實現comparable接口重寫compareTo()——>元素自身具備比較性<默認順序>
2.定義一個comparator接口的比較器——>集合自身具備比較性<元素自身不具備比較性or不是所需要的順序>

二叉樹這樣的數據結構—>可以減少比較次數

4.List集合:
根據角標索引實現增刪改查

特有的ListIterator!!!

——>迭代器只知道迭代前集合的情況,突然併發又添加元素 會出現異常
ArrayList:
採用的是數組形式來保存對象的,這種方式將對象放在連續的位置中,所以最大的缺點就是插入刪除時非常麻煩。
LinkedList:
採用的將對象存放在獨立的空間中,而且在每個空間中還保存下一個鏈接的索引  但是缺點就是查找非常麻煩 要叢第一個索引開始


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章