2023. 3. 25. 20:28ㆍ자바
데이터를 중복해서 저장할 수 없다.
중복을 피해서 저장할 때 사용하면 유용.
1. HashSet
: 데이터를 중복 저장할 수 없고 입력한 순서대로 값을 저장하지 않는다.
탐색속도가 빠르다.
Set <Integer> a=new HashSet<>();
2. TreeSet
: 데이터를 중복 저장할 수 없고 입력한 순서대로 값을 저장하지 않는다.
그리고 기본적으로 오름차순으로 데이터를 정렬한다.
Set <Integer> a=new TreeSet<>();
3. LinkedHashSet
: 데이터를 중복 저자할 수 없고, 입력된 순서대로 값을 저장한다.
Set <Integer) a=new LinkedHashSet<>();
<공통 메소드>
int size() // set의 원소의 개수 반환
boolean isEmpty() //원소가 하나도 없다면 true 아니면 false 반환
boolean contains(Object o) // 만약 찾으려는 특정원소를 포함한다면 true 아니면 false 반환
Object[] toArray() // set의 모든 요소를 포함하는 배열로 반환, 이를 수정해도 원래 set에는 영향x,
반환형이 오브젝트 타입이라 모든 객체 참조 가능.
T[] toArray(T[] a) // 배열을 매개변수로 사용하며, 반환되는 배열의 유형은 인자로 전달된 배열의 유형과 동일.
인자론 오브젝트 타입만 가능
인자로 전달된 배열이 set의 크기보다 작으면 새 배열을 만들어서 저장 후 반환. 크거나 같으면 뭐 잘 바뀜.
예) String[] y = x. toArray(new String[0])
boolean add(E e) // e가 set에 존재하지 않는 경우 추가. 이미 존재하면 false를 반환.
boolean remove(Object o) // set에 o가 존재하면 제거 후 true 반환. 없다면 false 반환
boolean containsAll(Collection<?> c) // set이 컬렉션 c의 모든 요소를 포함한다면 true 반환
boolean addAll(Collectione<? extends E> c) // 주어진 컬렉션 c의 모든 요소가 set에 존재하지 않는 경우,
추가 후 true 반환.
boolean retainAll(Collection<?> c) // 주어진 컬렉션 c에 포함되지 않은 모든 요소를 set에서 제거 후,
true 반환 -> 즉, 두 객체 사이의 교집합만 남겨놓음.
boolean removeAll(collection<?> c) // 주어진 컬렉션 c에 포함된 요소를 set에서 제거 후, true 반환.
void clear() // 모든 요소 삭제
boolean equals(Object o) // 객체 o가 set과 같은지 비교.
지정된 o도 set이고 모든 요소가 같은 경우 true 반환
Iterator <Object> it=set.iterator(); // 반복자 생성
it.hasNext() // 데이터가 있으면 true 아니면 false 반환
it.next() // 다음 데이터 리턴
'자바' 카테고리의 다른 글
| 자바 스트림(Stream) 정리 (계속 추가해 나갈 것) (0) | 2023.04.06 |
|---|---|
| Arrays 클래스 (1) | 2023.03.27 |
| 정수의 최솟값 구하기 (0) | 2023.03.25 |
| ArrayList (0) | 2023.03.25 |
| 정적 배열 정리 (0) | 2023.03.25 |