【Java類集】_Set介面筆記
本章目標:
掌握Set介面與Collection介面的關係
掌握Set介面的常用子類:TreeSet、HashSet
Collection現在已經學習過了兩種介面:List、Queue
Set介面的定義:
Set介面也是Collection介面的子介面,但是與Collection或List介面不同的是,Set介面中不能加入重複的元素。
Set介面的定義:
public interface Set<E> extends Collection<E>
Set介面的主要方法與Collection是一致的
Set介面的執行個體無法像List介面那樣進行雙向輸出。
Set介面的常用子類
散列存放:HashSet
有序存放:TreeSet
Collection就不能進行雙向輸出,因為沒有提供get()方法,但是Set與Collection介面的定義一致,所以本身也就不能雙向輸出。
HashSet:使用散列的方式存放內容,本身沒有順序。
import java.util.HashSet;import java.util.Set;public class HashSetDemo01{ public static void main(String[] args){ Set<String> allSet = new HashSet<String>(); allSet.add("A"); allSet.add("B"); allSet.add("C"); allSet.add("D"); allSet.add("E"); allSet.add("F"); allSet.add("G"); System.out.println(allSet); }}
是無序的,而List介面的內容插入的順序就是其儲存的順序。
如果現在希望所有的內容可以自動進行排序操作,則可以使用Set的第二個子類————TreeSet
import java.util.TreeSet;import java.util.Set;public class TreeSetDemo01{ public static void main(String[] args){ Set<String> allSet = new TreeSet<String>(); allSet.add("A"); allSet.add("B"); allSet.add("C"); allSet.add("D"); allSet.add("E"); allSet.add("F"); allSet.add("G"); System.out.println(allSet); }}