JAVA--set介面及其實現類的使用
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)//升序
相關文章
- Set介面及其實現類
- List介面及其主要實現類
- BlockingQueue介面及其實現類的原始碼分析BloC原始碼
- Map類及其主要的實現類
- delphi 判斷類是否實現介面,獲取類實現的介面
- python 介面實現類的Python
- TypeScript 類實現介面TypeScript
- visual studio 使用技巧 1:快速找到介面的實現類
- 使用Thread類和Runnable介面實現多執行緒的區別thread執行緒
- 關於應該實現ActionListener介面還是使用ActionListener的匿名類物件物件
- 聊聊keep-alive元件的使用及其實現原理Keep-Alive元件
- Java集合為什麼設計為:實現類繼承了抽象類,同時實現抽象類實現的介面Java繼承抽象
- JAVA 將介面的引用指向實現類的物件Java物件
- TypeScript介面與類的使用TypeScript
- java中介面多個實現類,如何指定實現類,根據子類型別選擇實現方法Java型別
- Mapper 介面並沒有實現類,它是如何工作的?APP
- 簡單的list介面和edit介面使用java swing實現Java
- 從java內建類和自定義類比較Comparable介面和Comparator介面實現排序的不同Java排序
- 類的繼承,介面的使用繼承
- 使用Runnable介面實現執行緒的方法執行緒
- 為什麼MyBatis的Mpper介面不需要實現類?MyBatis
- JUC包中原子類使用及其原理
- C#中介面的顯式實現與隱式實現及其相關應用案例C#
- 介面是否可繼承(extends)介面? 抽象類是否可實現 (implements)介面? 抽象類是否可繼承具體類(concrete class)?繼承抽象
- Java 併發程式設計:ThreadLocal 的使用及其原始碼實現Java程式設計thread原始碼
- Andriod 實現一個類微信聊天介面 (二)
- java 一個類實現兩個介面的案例Java
- 使用AIDL實現跨程式介面回掉AI
- 使用 Spring Validator 介面實現驗證Spring
- 使用jupyter實現貓和狗的分類
- 使用介面實現RecyclerView中的item點選事件View事件
- 深入理解Vue的computed實現原理及其實現方式Vue
- 深入理解Vue的watch實現原理及其實現方式Vue
- DDD的實體、值物件、聚合根的基類和介面:設計與實現物件
- 線性表及其實現
- AOP如何實現及其原理
- 分散式鎖及其實現分散式
- 字首樹及其Java實現Java