# Set - 집합
#### Set 이란?
Set이란 집합의 형태로 객체를 저장하는 방식입니다. Set은 요소 저장 시 그 순서를 유지 하지 않으며, 같은 요소의 중복을 허락하지 않습니다.
#### Set의 종류
이러한 Set의 대표적 형태로, TreeSet과 HashSet이 있습니다.
- TreeSet: 정렬(lowest to highest)
- HashSet: 비정렬(pseudo-random)
#### TreeSet 사용법
이번 문제에서는 TreeSet에 대한 사용법을 연습해보도록 하겠습니다. TreeSet 객체는 아래와 같이 생성할 수 있습니다.
```
// Book 저장을 위한 TreeSet
TreeSet<Book> books = new TreeSet<Book>();
// Drink 저장을 위한 TreeSet
TreeSet<Drink> drinks = new TreeSet<Drink>();
// String 저장을 위한 TreeSet
TreeSet<String> strings = new TreeSet<String>();
```
위에서 만든 객체는 요소의 추가/삭제/검색 기능등을 제공합니다.
```
// 요소 추가
strings.add("BBB");
strings.add("AAA");
strings.add("CCC");
// 요소 삭제
strings.remove("BBB");
// 요소 검색
strings.contains("BBB"); // false
strings.contains("CCC"); // true
```
더 자세한 내용은 공식 API문서를 참조하세요.
- https://docs.oracle.com/javase/8/docs/api/java/util/TreeSet.html
## 문제
TreeSet API 문서와 주어진 코드를 참조하여, 출력 예와 같은 결과를 얻으시오.
## 출력 예
```
names.size() -> 5
names.first() -> Adam
names.last() -> Eugene
== for each 구문 출력 ==
Adam
Brian
Cate
Daniel
Eugene
```