Set
-저장순서가 유지되지 않음
-객체를 중복해서 저장할 수 없음
-하나의 null만 저장 가능
주요메소드
기능 |
메소드 |
설명 |
객체추가 |
boolean add(E e) |
주어진 객체를 저장, 객체가 성공적으로 저장되면 true리턴, 중복객체면 false 리턴 |
객체검색 |
boolean contains(Object o) |
주어진 객체가 저장되어 있는지 여부 |
isEmpty() |
컬렉션이 비어있는지 조사 |
|
Iterator<E> iterator() |
저장된 객체를 한 번씩 가져오는 반복자 리턴 |
|
int Size() |
저장되어 있는 전체 객체 수 리턴 |
|
객체삭제 | void clear() | 저장된 모든 객체를 삭제 |
boolean remove(Object o) |
주어진 객체를 삭제 |
Set컬렉션은 인덱스로 객체를 검색해서 가져오는 메소드가 없다. 대신 전체 객체를 대상으로 한 번씩 반복해서 가져오는 반복자인 Iterator를 제공한다. iterator()메소드를 호출하면 얻을 수 있다.
Set<String> set = ...;
Iterator<String> iterator = set.iterator();
Iterator 인터페이스에 선언된 메소드
리턴타입 |
메소드명 |
설명 |
boolean |
hasNext() |
가져올 객체가 있으면 true, 없으면 false |
E |
next() |
컬렉션에서 하나의 객체를 가져온다. |
void |
remove() |
Set컬렉션에서 객체를 제거한다. |
HashSet - 일반적인 경우
-집합이 필요하나 순서가 중요하지 않은 경우, 즉 오름차순 내림차순이 상관없는 경우에 사용
-동일한 객체는 중복 저장 하지 않음
-무엇이 들어있는지 혹은 무엇이 들어있지 않은지 확인하는데 사용
TreeSet - 순서가 중요한 경우(lower bound, upper bound)
-이진검색트리(레드블랙트리) 이용해서 구현
-삽입/삭제/제거연산의 시간복잡도가 logN
-순서가 보장됨(입력순이 아니라 오름차순 혹은 내림차순과 같이 정해진 순서)
LinkedHashSet - 입력한 순서가 중요한 경우
-해쉬테이블과 연결리스트를 이용해서 구현
-삽입/삭제/제거연산의 시간복잡도가 1
-입력한 순서, 추가한 순서가 보장됨
'건승하고있어요 > Java' 카테고리의 다른 글
[sort] Comparable 과 Comparator (2) | 2018.02.04 |
---|---|
[Collection] Map - HashMap (0) | 2018.02.03 |
[Collection] 스택(Stack, LIFO) 과 큐(Queue, FIFO) (0) | 2018.02.03 |
[Collection] List컬렉션 - ArrayList, LinkedList (0) | 2018.02.03 |
Collection Framework 컬렉션 프레임워크 (0) | 2018.02.03 |