JAVA--set介面及其實現類的使用

Pinocchio?發表於2020-11-27

1.Set介面用以描述不能包含重複元素的集合。
2.
(1)HashSet類(雜湊集合) :建立一個無序的集合物件
元素無序
(2)TreeSet類(樹集合):建立一個有序的集合物件
對元素排序(不重複) 有順序(可比較大小) cmparable介面
(3)LinkedHashSet:與插入先後順序吻合且不重複
3、 集合物件(Set介面)常用的方法
(1)集合與集合元素之間的關係操作方法

 public boolean add(object o)  //新增元素
 public boolean remove(object o)//刪除元素
 public boolean contains(object o)//屬於關係
 public  int size()//元素的個數

(2)集合與集合之間關係的操作方法

public boolean containsAll(Collection c) //包含關係
public boolean addAll(Collection c)//並集
public boolean removeAll(Collection c)//差集
public boolean retainAll(Collection c)//交集

4.HashSet和LinkedHashSet----雜湊集合
(1)HashSet常用的方法
HashSet()//建立一個空的雜湊集合物件
HashSet(Collection c)//用c的元素初始化雜湊集合
(2)HashSet雜湊集合物件的建立
Set<型別> s=new HashSet<型別>();
(3)HashSet常用方法
具有Set介面的所有方法
(4)LinkedHashSet類
是HashSet的子類,使用指標(鏈)來維護元素次序,即保證和原本的插入的先後順序吻合
(5)HashSet與LinkedHashSet的異同點

相同點:物件都不允許新增重複的元素
不同點:LinkedList的遍歷結果和新增順序一致,HashSet遍歷結果是無序的。

(6)選擇常考的題
String類對hashCode方法和equal方法都進行了重寫,
內容相同的字串雜湊碼也是相同的;

HashCode不相等,equals也不相等
HashCode相等,equals可以相等也可以不相等
equals相等,Hashcode也相等。
5.TreeSet
TreeSet類建立的物件稱為樹集,樹集是個有序集合,排序既可以是元素的自然順序,也可以是建立集合時指定的比較器所定製的比較規則而得到的順序(自定義排序)
(1)自然排序
元素對應類必須實現Comparable介面,TreeSet會重寫compare to方法的返回值,將集合的元素按大小關係升序排序。

Student O;
O.sno.this.id(this.sno);//降序

(2)自定義排序
通過TreeSet構造方法指定比較器(實現Comparator介面類的物件)將集合元素按升序排列‘

this.sno.this.id.(O.sno)//升序

相關文章