1 collection:是集合的頂層結構,定義了集合的共性功能。
1.1 成員方法:
a:新增功能
boolean add(object obj):往集合中新增乙個元素
boolean addall(collection c):往集合中新增多個元素
b:刪除功能
void clear():清空所有元素
boolean remove(object o):從集合中刪除乙個元素
boolean removeall(collection c):從集合中刪除另乙個集合的元素
c:判斷功能
boolean contains(object o):判斷集合中是否包含指定的元素
boolean containsall(collection c):判斷集合中是否包含另乙個集合的元素
boolean isempty():判斷集合是否為空。
d:交集功能
boolean retainall(collection c)
e:迭代器(集合特有的遍歷方式)
iterator iterator()
重點:iterator的使用
a:使用步驟
b:迭代器原理
f:長度功能
int size():返回集合中元素的個數
面試題:
陣列有length()嗎?字串有length()嗎?集合有length()嗎?
陣列和字串都有length()方法;集合是size()方法。
g:集合轉陣列
objecttoarray():把集合轉成陣列,然後遍歷陣列,其實就相當於遍歷了集合
2.list
(1)list集合的元素有序(儲存和取出順序一致),元素可重複
(2)list的特有功能:
a:新增功能
void add(int index,object obj):在指定的位置新增元素
b:刪除功能
object remove(int index):通過指定的索引刪除元素,並把刪除的元素返回
c:獲取功能
get(int index) 返回列表中指定位置的元素。
d:替換功能
object set(int index,object obj)
(4).list的倒序與洗牌
list中元素順序可以被洗牌collections.shuffle(list)
list中元素順序可以被倒序collections.reverse(list)
collections.sort(list)對list元素排序(字母數字分別進行測試)
3.arraylist:繼承了collection和list的方法。
4.linkedlist:不僅繼承了collection和list的方法。還有其特有方法如下所示:
public void addfirst(e e)資料序列頭部插入資料
public void addlast(e e)資料序列尾部插入資料
public e getfirst()獲得第乙個資料
public e getlast()獲得最後乙個資料
public e removefirst()移除第乙個資料
public e removelast()移除最後乙個資料
5.arraylist與linkedlist的相同點與不同點
相同點:有順序的,元素可以重複
(1)arraylist特點:
底層資料結構是陣列,查詢快,增刪慢
執行緒不安全,效率高
(2)linkedlist特點:
底層資料結構是鍊錶,查詢慢,增刪快
執行緒不安全,效率高
6 接下來將用**具體展示collection與list
6.1collection遍歷:
程式執行結果:public class dogtest }}
左邊:e.hash == hash
比較物件的雜湊值。
右邊:((k = e.key) == key || key.equals(k))
左邊:(k = e.key) == key
比較物件的位址值。
右邊:key.equals(k)
比較的是物件的內容是否相同。預設情況下比較的是位址值
從以上分析得出結論:
底層資料結構是雜湊表。
雜湊表依賴兩個方法:hashcode()和equals()
執行流程:
首先判斷雜湊值是否相同,如果不同,就直接新增到集合。
如果相同,繼續執行equals(),看其返回值,
如果是false,就直接新增到集合。
如果是true,說明元素重複不新增。
9.treeset
元素順序:使用元素的自然順序對元素進行排序,或者根據建立 set時提供的 comparator進行排序(比較器排序),具體取決於使用的構造方法。
10.hashset與treeset的相同點與不同點
相同點:單列集合,元素不可重複
不同點1.底層儲存的資料結構不同
hashset底層用的是hashmap雜湊表結構儲存,而treeset底層用的是treemap樹結構儲存
2.儲存時保證資料唯一性依據不同
hashset是通過複寫hashcode()方法和equals()方法來保證的,而treeset通過compareable介面的compareto()方法來保證的
3.有序性不一樣
hashset無序,treeset有序
11 接下來用**演示
hashset與treeset的實現
11.1
hashset
public class studenthashsettest
}
程式執行結果:
11.2 treeset
public class studenttreesettest
}}
程式執行結果:
集合的基本類就是以上這些,如果需要後續還會繼續補充
Java基礎知識 集合框架
student arr new student 5 儲存學生物件 arr 0 new student 張三 23 arr 1 new student 李四 24 arr 2 new student 王五 25 arr 3 new student 趙六 26 arr 4 new student 馬哥 ...
Java集合基礎知識整理
長度區別 陣列長度固定,集合長度可變 內容不同 陣列只能是同一型別元素,集合可以儲存不同型別元素 元素的資料型別不同 陣列可以儲存基本型別和引用型別,集合只能儲存引用型別 物件 集合繼承關係圖 是所有collextion集合類的超類,是乙個抽象類 基本功能 public static void ma...
相關基礎知識
宣告 在作者學習資料結構的過程中發表的博文,一般是自己學習後知識點的總結,同時有些是摘抄於教材的,學習教材為 資料結構 c語言版 秦峰主編。特此宣告,後續博文不在重複說明。一 基本概念 資料 data 是對客觀事物的符號表示,它能夠被計算機識別 儲存 和加工處理。資料元素 data element ...