Java 的資料型別與例外狀況
Jim White
Java Developer
Set 也是一種 CollectionSet 一般無序(因此沒有索引)List 像藥盒,每個物件都在固定位置Set 像麻布袋,物件隨機放在袋中

SetSet 中ListSet 有多種實作HashSet 很常用HashSetSet 實作更快Set 實作更耗記憶體null
HashSetHashSet<String> set = new HashSet<String>();
HashSet 位於 java.util 套件import java.util.HashSet.add()、.remove() 新增或移除物件.remove() 再 .add() 以取代物件.contains() 檢查物件是否已存在nullset.add("France");
set.add("Japan");
set.add("Brazil");
set.add("Egypt");
set.add(null); // null is allowed
set.remove("Brazil");
boolean z =
set.contains("France"); // z is true
set.add("Japan"); // Ignored
System.out.println(set);
[null, Japan, Egypt, France]
Queue 資料結構以先進先出(FIFO)處理物件
Queue 有多種實作Queue 實作 ArrayBlockingQueue 位於 java.util.concurrent 套件中java.util 套件ArrayBlockingQueueimport java.util.concurrent; // 放在類別最上方
// 建立可儲存 4 個 String 的新佇列
ArrayBlockingQueue<String> queue = new ArrayBlockingQueue<String>(4);
.add(object) 或 .offer(object) 加到隊尾Queue 達容量時,.add(object) 會丟出例外.offer(object) 會忽略新物件ArrayBlockingQueue<String> queue
= new ArrayBlockingQueue<String>(4);
queue.offer("France");
queue.offer("Japan");
queue.offer("Brazil");
queue.offer("Egypt");
queue.offer("China"); // Ignores China
// Causes IllegalStateException
// queue.add("China");
System.out.println(queue);
[France, Japan, Brazil, Egypt]
.remove() 或 .poll() 自隊首移除Queue 為空時,.remove() 會拋出例外Queue 為空時,.poll() 回傳 nullArrayBlockingQueue<String> queue
= new ArrayBlockingQueue<String>(4);
String x = queue.poll(); // x is null
// Causes NoSuchElementException
// String y = queue.remove();
queue.offer("France");
String next = queue.poll();
System.out.println(next);
France
Java 的資料型別與例外狀況