JAVA集合相關基礎知識

2021-07-31 14:31:40 字數 3629 閱讀 2101

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 ...