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 个字符串的队列
ArrayBlockingQueue<String> queue = new ArrayBlockingQueue<String>(4);
.add(object) 或 .offer(object) 追加到队尾.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 的数据类型与异常