Collection - Set
집합, 순서 없고, 중복 없다. Set에 대해 복습 해보고자 한다.
•
순서가 보장되지 않는대신 중복을 허용하지 않는 곳에서 사용
•
빠른 검색이 필요할 때 사용하는 클래스,같은 자료를 중복 보관할 수 없다.
•
Set 클래스(<interface임)
◦
HashSet, TreeSet, LinkedHashSet이 있음
▪
HashSet이 가장 성능이 좋다.
•
Hashing을 이용해서 구현한 컬렉션
▪
TreeSet
•
이진탐색트리(Red-Black Tree)의 형태로 데이터를 저장
•
데이터 추가, 삭제에는 시간이 더 걸리지만, 검색과 정렬이 뛰어나다.
•
기본적으로 오름차순으로 데이터를 정렬
▪
LinkedHashSet
•
HashSet 클래스를 상속받은 LinkedList
•
데이터에 삽입된 순서대로 데이터를 관리한다.
•
Method
◦
.add(E e)
◦
.contains(Object o)
◦
.clear()
◦
.equals(Object o)
◦
.isEmpty();
◦
.size()
◦
.iterator()
•
항상 공식 문서를 확인하고 정확한 명칭을 기억하려 노력하자
1. 기본 생성법
Set<E> name = new HashSet<>();
//Set 선언 + (객체)생성
Set<Integer> intSet = new HashSet<>();
Java
복사
2. (Hash)Set의 메서드 이용
.add(E e) : element 추가
//add(element) 메서드로 생성한 Set에 element를 넣어보자.
intSet.add(2);
intSet.add(51);
intSet.add(2);
intSet.add(6);
intSet.add(2);
intSet.add(282);
Java
복사
.contains(Object o): element 존재 여부 반환 T or F
//포함여부확인//contains
System.out.println(intSet.contains(3));
System.out.println(intSet.contains(2));
Java
복사
.size(), .isEmpty()
//size()
System.out.println(intSet.size());
//isEmpty()
System.out.println(intSet.isEmpty());
Java
복사