[Java] 13.2. Set

Set,不重複的集合。

 

image/svg+xml13.2.Set 其實讓 List Set 擁有隨意增加、刪除或列舉資料能⼒的就是 Collection 介⾯ import java.util.*; class Main{ public static void main( String [] args){ ArrayList employees = new ArrayList (); employees.add( "Jason" ); employees.add ( " Mary " ); employees.add( "Alex" ); employees.add( "Jack" ); employees.add ( " Mary " ); for ( Object o : employees){ System.out.println(o); } } } 執⾏結果 Jason Mary Alex Jack Mary import java.util.*; class Main{ public static void main( String [] args){ HashSet employees = new HashSet (); employees.add( "Jason" ); employees.add ( " Mary " ); employees.add( "Alex" ); employees.add( "Jack" ); employees.add ( " Mary " ); for ( Object o : employees){ System.out.println(o); } } } 執⾏結果 Jack Mary Jason Alex import java.util.*; class Main{ public static void main( String [] args){ TreeSet employees = new TreeSet (); employees.add( "Jason" ); employees.add ( " Mary " ); employees.add( "Alex" ); employees.add( "Jack" ); employees.add ( " Mary " ); for ( Object o : employees){ System.out.println(o); } } } 執⾏結果 Alex Jack Jason Mary J13_2_1 Main.java . 這是其中⼀個實作 Set 的類別 HashSet ,它保證相同的 資料不會重複存在,很適合作為員⼯名冊的製作。 J13_2_2 Main.java . 建入 ArrayList 物件,希望能夠作為員⼯名冊使⽤。 2. …Mary 在員⼯名冊上出現了兩次。 3. 實際的使⽤ List 製作的員⼯名冊,並將員⼯姓名列出時,這時會有兩個 Mary No~~ 這不是我們想要的員⼯名冊,因為同⼀位員⼯的名字被重複列出了。 2. 嘗試加入相同姓名的員⼯。 4. 有排序的 Set 介⾯,實作此介 ⾯的類別必須擁有排序的特性。 3. Set 保證相同的員⼯姓名,只會出現⼀次。 J13_2_3 Main.java HashSet 類別,其名字上前⾯的 Hash 字眼其實是分類資料的技術名稱,後⾯ 會說明。 1. 改⽤ TreeSet 類別,這個類別是實作 SortedSet 介⾯的類別,因此必須提供資料排序的功能。 2. 除了嘗試加入相同姓名的員⼯外,且在加入姓名時,皆沒有刻 意的依照姓名字⺟的⼤⼩,將資料加入⾄員⼯名冊 TreeSet 中。 3. 除了保證相同的姓名不會重複出現外,還將員⼯ 名冊上的姓名,依⼩⾄⼤的順序進⾏排列。 TreeSet 類別,其名字上前⾯的 Tree 字眼其實排序的⼀種演算法,也因為排 序的技術是使⽤ Tree 技得,因此才取名為 TreeSet 。若是給予 TreeSet 中的 資料是數值的時候,則排序的⽅式會數值由⼩到⼤的⽅式排列。 2. Collection 介⾯,提供可以新增資料的功能。 1. 改⽤ TreeSet 類別,這個類別是實作 SortedSet 介⾯的類別,因此必須提供資料排序的功能。 ⼀家公司中相同員⼯的名字 不應該在員⼯名冊中出現兩次! 1 1 Set 保證相同員⼯的名字只會出現⼀次 1 1 TreeSet 讓員⼯的名字不重複出現外,並依⼤⼩排序 1 1

留言