java集合繼承關係

2021-08-02 23:02:42 字數 3240 閱讀 2994

*物件導向語言對事物的體現都是以物件的形式,所以為了方便對多個物件的操作,就對物件進行儲存,集合就是儲存物件最常用的一種方式。

陣列雖然也可以儲存物件,但長度是固定的;集合長度是可變的,陣列中可以儲存基本資料型別,集合只能儲存物件。

*集合類的特點:集合只用於儲存物件,集合長度是可變的,集合可以儲存不同型別的物件。

集合框架圖

1、collection (集合的最大介面)繼承關係

——list 可以存放重複的內容

——set  不能存放重複的內容,所以的重複內容靠hashcode()和equals()兩個方法區分

——queue  佇列介面

——sortedset  可以對集合中的資料進行排序

collection定義了集合框架的共性功能。

1,新增

add(e);

addall(collection);

2,刪除

remove(e);

removeall(collection);

clear();

3,判斷。

contains(e);

isempty();

4,獲取

iterator();

size();

5,獲取交集。

retainall();

6,集合變陣列。

toarray();

*add方法的引數型別是object。以便於接收任意型別物件。

*集合中儲存的都是物件的引用(位址)

2、list的常用子類

list:

特有方法。凡是可以操作角標的方法都是該體系特有的方法。

增add(index,element);

addall(index,collection);

刪remove(index);

改set(index,element);

查get(index):

sublist(from,to);

listiterator();

int indexof(obj):獲取指定元素的位置。

listiterator listiterator();

——arraylist   執行緒不安全,查詢速度快

——vector  執行緒安全,但速度慢,已被arraylist替代

——linkedlist  鍊錶結果,增刪速度快

4、set介面

set:元素是無序(存入和取出的順序不一定一致),元素不可以重複。

|——hashset:底層資料結構是雜湊表。是執行緒不安全的。不同步。

hashset是如何保證元素唯一性的呢?

是通過元素的兩個方法,hashcode和equals來完成。

如果元素的hashcode值相同,才會判斷equals是否為true。

如果元素的hashcode值不同,不會呼叫equals。

注意,對於判斷元素是否存在,以及刪除等操作,依賴的方法是元素的hashcode和equals方法。

——treeset:

有序的存放:treeset  執行緒不安全,可以對set集合中的元素進行排序

通過compareto或者compare方法來保證元素的唯一性,元素以二叉樹的形式存放。

5、object類

*在實際開發中經常會碰到區分同一物件的問題,乙個完整的類最好覆寫object類的hashcode()、equals()、tostring()三個方法。

6、集合的輸出

——4種常見的輸出方式

——iterator: 迭代輸出,使用最多的輸出方式

——listiterator: iterator的子介面,專門用於輸出list中的內容

——enumeration

——foreach

在迭代時,不可以通過集合物件的方法操作集合中的元素。

因為會發生concurrentmodificationexception異常。

所以,在迭代器時,只能用迭代器的放過操作元素,可是iterator方法是有限的,

只能對元素進行判斷,取出,刪除的操作,

如果想要其他的操作如新增,修改等,就需要使用其子介面,listiterator。

該介面只能通過list集合的listiterator方法獲取。

7、map介面

*correction、set、list介面都屬於單值的操作,而map中的每個元素都使用key——>value的形式儲存在集合中。

map集合:該集合儲存鍵值對。一對一對往裡存。而且要保證鍵的唯一性。

1,新增。

put(k key, v value) 

putall(map extends k,? extends v> m)

2,刪除。

clear() 

remove(object key)

3,判斷。

containsvalue(object value) 

containskey(object key) 

isempty()

4,獲取。

get(object key) 

size() 

values()

entryset() 

keyset()

8、map介面的常用子類

map|hashmap:底層是雜湊表資料結構,允許使用 null 值和 null 鍵,該集合是不同步的。將hashtable替代,jdk1.2.效率高。

|--treemap:底層是二叉樹資料結構。執行緒不同步。可以用於給map集合中的鍵進行排序。

9、集合工具類

collections:集合框架的工具類。裡面定義的都是靜態方法。

collections和collection有什麼區別?

collection是集合框架中的乙個頂層介面,它裡面定義了單列集合的共性方法。

它有兩個常用的子介面,

list:對元素都有定義索引。有序的。可以重複元素。

set:不可以重複元素。無序。

collections是集合框架中的乙個工具類。該類中的方法都是靜態的

提供的方法中有可以對list集合進行排序,二分查詢等方法。

通常常用的集合都是執行緒不安全的。因為要提高效率。

如果多執行緒操作這些集合時,可以通過該工具類中的同步方法,將執行緒不安全的集合,轉換成安全的。

java集合關係

集合關係 collection 單列集合最頂端介面 list 有序,可重複,有索引 arraylist 底層陣列,查詢快,非同步,執行緒不安全,效率快,增刪慢 linkedlist 底層鍊錶,查詢慢,增刪快 vector 底層陣列,同步,執行緒安全,效率低 set 無序,不可重複,無索引 hashs...

JAVA的繼承關係

今天學習到繼承的概念 1.子類和父類關係,關鍵字 extends implements 子類可以繼承父類的所有非私有屬性和行為,繼承是單繼承,不能同時繼承多個父類。比如 兒子可以繼承父親的事業,但不包括private類關係的一部分的型別,並且只有乙個父類 2.繼承 繼承是一種聯結類的層次模型,並且允...

Java繼承關係的理解

首先有乙個基類 thing public class thing 然後有個子類命名為shape 形狀 繼承thing public class shape extends thing public void getname public static void getsname 然後有個子類命名為c...