Java의 데이터 타입과 예외
Jim White
Java Developer
Set도 Collection의 한 종류Set은 순서가 없음(즉, 인덱스 없음)List는 약통처럼 각 객체가 특정 칸(위치)에 있음Set은 자루처럼 객체가 무작위로 담겨 있음

Set 사용 시점Set에 있는지 확인List 사용 시점Set의 다양한 구현체HashSet이 대표적HashSetSet 구현보다 빠름Set보다 메모리 더 사용null 1개 저장 가능
HashSet 생성HashSet<String> set = new HashSet<String>();
HashSet는 java.util 패키지에 있음import java.util.HashSet.add(), .remove()로 객체 추가/삭제.remove() 후 .add().contains()로 존재 여부 확인null 허용set.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에 있지 않음ArrayBlockingQueue 생성import 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().remove()는 비어 있으면 예외 발생.poll()은 비어 있으면 null 반환null은 허용하지 않음ArrayBlockingQueue<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의 데이터 타입과 예외