Java集合中常用的介面和類

2021-05-27 11:11:49 字數 2731 閱讀 7091

上圖是集合框架中常用的類和介面: 

一、用得最多的主要有set,list,map,iterator這幾個介面, set和list介面都是collection介面的子介面,有很多相同的地方,我們只要撐握了collection介面的方法及set和list的用法也就差不多了. 

set和list 的區別:1、set集合是無順序的,不能放重複的資料 

2、list集合是有序的,可以存放重複的資料

set的實現類常用的主要有兩個:hashset、treeset 

我們可以把一類物件新增到集合中,並且按物件的某乙個屬性進行排序(客戶化排序和自然排序) 

1、對treeset集進行客戶化排序要求寫乙個類實現comparator介面,並且重寫其中的compare方法 例: 

客戶化排序容易擴充套件,如果要按其它的屬性排序,只需要重新寫乙個類實現comparator介面就可以了, 

不需要修改原來的**。 

class users 

public void setname(string name) 

public string getname() 

public void setid(int id) 

public int getid() 

//這裡重寫了父類的tostring方法 

public string tostring()  } 

//這個類實現comparator介面,並且重寫了其中的compare方法 

public class mycomparator implements comparator  } 

class  testcomparator 

public static void test()  } 

} 2、自然排序,將需要排序的那個類實現comparable介面並且重寫其中的compareto方法 

例如下:      class users  implements comparable 

public void setname(string name) 

public string getname() 

public void setid(int id) 

public int getid() 

//這裡重寫了父類的tostring方法 

public string tostring() 

//重寫compareto方法 

public int compareto(object o)  } 

3.如果是hashset自然排序,則要求排序的類重寫hashcode方法和equals方法 

二、對list和set集進行遍歷: 

對list集合進行遍歷有如下幾種方法: 

1、通過下標遍歷,2使用迭代器進行遍歷,3、增強迴圈進行遍歷 

list list=new arraylist(); 

list.add("aa"); 

list.add("bb"); 

list.add("cc"); 

for(int i=0;i 

iterator it=list.iterator(); 

while(it.hasnext()) 

for(object obj :list) 

三、vector和arraylist的區別: 

1、vector 和arraylist都實現了list介面,vector是執行緒安全的,可以多個執行緒同時訪問,但效能比較差 

2、arraylist執行緒不安全,不支援多個執行緒同時訪問,但效能比較好,訪問的速度快 

四、map集是以鍵值對的形式存放的,鍵不可以重複,值可以重複,如果鍵重複,會將原來的值覆蓋, 

map集的實現類主要有三個:hashmap,treemap,hashtable 

hashmap與hashtable 的區別: 1、hashtable是執行緒安全的,支援同步。2、hashmap執行緒不安全,不支援 

同步,但效能比hashtable好 

map集的遍歷: 

1、 map map=new hashmap() 

map.put("1","張飛"); 

map.put("2","關羽"); 

map.put("3","劉備"); 

//得到鍵的集合 

set set=map.keyset(); 

for(object obj :set) 

2、 //得到健值對的集合 

set s=map.entryset(); 

for(object obj :set)       

五、對list集進行客戶化排序,可以通過collections類的sort方法,要求傳乙個list集和乙個comparator物件 例: 

list list=new arraylist() 

users user1=new  users("張三",17);      users user2=new  users("李四",13); 

users user3=new  users("王五",19); 

users user5=new users("王五",19); 

list.add(user1); 

list.add(user2); 

list.add(user3); 

list.add(user5); 

collections.sort(list,new mycomparator()); 

iterator it=list.iterator(); 

while(it.hasnext()) 

c 中常用集合類和集合介面之集合類系列

常用集合類 陣列 array 的不足 即 集合與陣列的區別 1.陣列是固定大小的,不能伸縮。雖然system.array.resize這個泛型方法可以重置陣列大小,但是該方法是重新建立新設定大小的陣列,用的是舊陣列的元素初始化。隨後以前的陣列就廢棄!而集合卻是可變長的。2.陣列要宣告元素的型別,集合...

c 中常用集合類和集合介面之集合類系列

常用集合類 陣列 array 的不足 即 集合與陣列的區別 1.陣列是固定大小的,不能伸縮。雖然system.array.resize這個泛型方法可以重置陣列大小,但是該方法是重新建立新設定大小的陣列,用的是舊陣列的元素初始化。隨後以前的陣列就廢棄!而集合卻是可變長的。2.陣列要宣告元素的型別,集合...

JAVA 中常用的幾個集合類

1.arraylist 基於陣列方式實現,無容量的限制。在執行插入元素時可能要擴容,在刪除元素時並不會減少陣列的容量。如果希望相應的縮小陣列容量,可以呼叫trimtosize 在查詢元素時要遍歷陣列,對於非null的元素採取equals的方式尋找。非執行緒安全。2.linkedlist 基於雙向鍊錶...