**collectoin單列集合:**
collection方法:● boolean add(object e) 把給定的物件新增到當前集合中
● void clear() 清空集合中所有的元素
● boolean remove(object o) 把給定的物件在當前集合中刪除
● boolean contains(object o) 判斷當前集合中是否包含給定的物件
● boolean isempty() 判斷當前集合是否為空
● iterator iterator() 迭代器,用來遍歷集合中的元素的
● int size() 返回集合中元素的個數
● object toarray() 把集合中的元素,儲存到陣列中
● iterator : 迭代器
● object next()返回迭代的下乙個元素
● boolean hasnext()如果仍有元素可以迭代,則返回 true。
**list集合:**
1.特點:
①它是乙個有序的集合(元素存與取順序相同)
②它可以儲存重複的元素
③有索引
2.list集合中的特有方法
void add(int index, object element) 將指定的元素,新增到指定位置上
object
get(int index)返回集合中指定位置的元素。
object remove(int index) 移除列表中指定位置的元素, 返回的是被移除的元素
object
set(int index, object element)用指定元素替換集合中指定位置的元素
3.list的子類
①arraylist:
底層資料結構是陣列,查詢快,增刪慢
執行緒不安全,效率高
②linkedlist:
底層資料結構是鍊錶,查詢慢,增刪快
執行緒不安全,效率高
**set集合**
1.特點:
①它不能儲存重複的元素
②沒有索引
③hashsset無序的集合(元素存與取的順序可能不同)
linkedhashsset有序的集合(元素存與取的順序相同)
2.set子類
①hashset:
元素唯一不能重複
底層結構是 雜湊表結構
元素的存與取的順序不能保證一致
②linkedhashset:
元素唯一不能重複
底層結構是 雜湊表結構 + 鍊錶結構
元素的存與取的順序一致
3.set集合儲存元素不重複的原理:
hashcode值一樣 , 元素內容不一樣 , 還是會輸出 .
hashcode值一樣 , 元素內容一樣 , 不會輸出 .
儲存的元素必須重寫hashcode和equals方法,來保證元素唯一
string,integer,double...hashcode和equals方法
沒有索引的遍歷方式:
1.迭代器遍歷:
arraylist list = new arraylist<>(); //建立集合
iterator it = list.iterator(); //獲取迭代器物件.
while(it.hasnext())
2.增強for迴圈
格式:建立乙個陣列或者集合.
for(資料型別 變數 : 陣列 / collection集合)
hashcode和equals方法的兩個問題:注意:兩個物件 person p1 = new person(); p2= new person();
問題1:
如果兩個物件的雜湊值相同 p1.hashcode() == p2.hashcode()
兩個物件的equals一定會返回true嗎? p1.equals(p2)一定是true嗎
正確答案:不一定
問題2:如果兩個物件的equals方法返回true, p1.equals(p2)=true
兩個物件的雜湊值一定相同嗎?
正確答案:一定(常規協定)該協定宣告相等物件必須具有相等的雜湊碼。
迭代器和增強for只能遍歷,不能刪除或者修改元素.否則就會出現併發修改異常:concurrentmodificationexception .
單列集合Collection常用方法(二)
list set和collection是繼承關係,collection介面中的方法在list set方法中都可以繼承使用,同時list set介面還有屬於自己的特有方法。list介面通過arraylist類實現,set介面通過hashset類實現。list介面特點 1 有序儲存 按什麼順序存就按什麼...
Collection 單列集合的頂層介面
collection 單列集合的頂層介面 list 有序 有索引 元素可重複 arraylist 底層資料結構是陣列 查詢快 增刪慢 執行緒不安全 效率高 linkedlist 底層資料結構是鍊錶 查詢慢 增刪快 執行緒不安全 效率高 vector 底層資料結構是陣列 查詢快 增刪慢 執行緒安全 效...
集合 Collection集合總結
list有序,可重複 abstractlist 父類abstractcollection抽象類,實現了list介面 arraylist 父類abstractlist 底層資料結構是陣列,查詢快,增刪慢。執行緒不安全,不同步,效率高 vector 父類abstractlist 底層資料結構是陣列,查詢...