---|collection: 單列集合
---|list: 有儲存順序, 可重複
---|arraylist:
陣列實現, 查詢快, 增刪慢
由於是陣列實現, 在增和刪的時候會牽扯到陣列
增容, 以及拷貝元素. 所以慢。陣列是可以直接
按索引查詢, 所以查詢時較快
---|linkedlist:
鍊錶實現, 增刪快, 查詢慢
由於鍊錶實現, 增加時只要讓前乙個元素記住自
己就可以, 刪除時讓前乙個元素記住後乙個元
素, 後乙個元素記住前乙個元素. 這樣的增刪效
率較高但查詢時需要乙個乙個的遍歷, 所以效率
較低---|vector:和arraylist原理相同, 但執行緒安全, 效率略低
和arraylist實現方式相同, 但考慮了執行緒安全問
題, 所以效率略低
---|set: 無儲存順序, 不可重複 先比較hashcode 如果相同 在比較equals
---|hashset
---|treeset
---|linkedhashset
---| map: 鍵值對
---|hashmap
---|treemap
---|hashtable
---|linkedhashmap
hashset新增元素的原理:
往hashset新增元素的時候,首先hashset會呼叫元素的hashcode方法得到元素的雜湊碼值,然後會經過一系列運算
就可以算出該元素在雜湊表中的儲存位置/
情況1:如果算出該元素的位置目前沒有任何元素儲存,那麼該元素可以直接儲存
情況2: 如果算出該元素的位置目前已經存有其他的元素,那麼還會呼叫元素的equals方法與該位置的元素再比較一次。
如果equals方法返回的是false,那麼該元素允許儲存,如果euqlas方法返回的是true,那麼該元素被視為重複元素,不允許儲存。
------------------| treeset 底層是使用了紅黑樹(二叉樹)資料結構實現的, 特點:會對元素進行排序儲存。
treeset要注意的事項:
1. 往treeset新增元素的時候,如果元素本身具備自然順序的特性,那麼會根據元素自然順序的特性進行排序儲存。
2. 往treeset新增元素的時候,如果元素本身不具備自然順序的特性,那麼元素所屬的類必須要實現comparable介面,把元素的比較規則定義
在compareto方法上。
3. 往treeset新增元素的時候,如果元素本身不具備自然順序的特性,而且元素所屬的類沒有實現comparable介面,那麼必須要在建立
treeset物件的時候傳入比較器。
4. 如果比較的方法(compareto 或者compare )返回的是0的時候,那麼該元素就被視為重複元素,不允許新增。
比較器的定義格式: 自定義乙個類實現comparator介面即可。
class 類名 implements comparator
相同點: arraylist與vector底層都是使用了object陣列實現的。
不同點:
1. arraylist是執行緒不同步的,操作效率高。
vector是執行緒同步的,操作效率低。
2. arraylist是jdk1.2出現,vector是jdk1.0的時候出現的。
使用arraylist無參的建構函式建立乙個 物件時, 預設的容量是多少? 如果長度不夠使用時又自增增長多少?
arraylist底層是維護了乙個object陣列實現 的,使用無參建構函式時,object陣列預設的容量是10,當長度不夠時,自動增長0.5倍(1.7版本之前),1.7版本之後,右移一位。
迭代器的方法:
hasnext() 問是否有元素可遍歷。如果有元素可以遍歷,返回true,否則返回false 。
next() 獲取元素...
remove() 移除迭代器最後一次返回 的元素。
nosuchelementexception 沒有元素的異常。
出現的原因: 沒有元素可以被迭代了。。。
容器(collection)初步
容器 集合 的分類 泛型 generic 本質是資料型別的引數化 提前告訴編譯器,在呼叫泛型時必須傳入實際型別 例 e即為在主函式中定義的傳入的實際型別 class mycollection public e get int a collectio介面方法 collection c new arra...
Java容器 Collection介面
1.容器和陣列的區別 容器,只能存放引用型別的資料,基本型別的資料需要轉換成它的包裝類,才可以使用,長度是可以變得。陣列,基本資料型別和引用資料型別都可以存放,長度是固定的,在定義的時候就已經被定義好了。2.collection 底層就是乙個陣列,每次新增資料的時候就會判斷容量是否能夠存放,不能夠存...
容器類 collection 常用方法總結
nsarray 常用方法 1.建立陣列物件 arraywithobjects 2.獲取某個下標 index 物件方法 objectatindex nsstring str1 arr1 objectatindex 0 3.已知物件,獲取位置下標 indexofobject nslog lu arr1 ...