Set 컬렉션 정리

2023. 3. 25. 20:28자바

728x90

데이터를 중복해서 저장할 수 없다.

중복을 피해서 저장할 때 사용하면 유용.

 

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() // 다음 데이터 리턴 

 

 

 

 

728x90

'자바' 카테고리의 다른 글

자바 스트림(Stream) 정리 (계속 추가해 나갈 것)  (0) 2023.04.06
Arrays 클래스  (1) 2023.03.27
정수의 최솟값 구하기  (0) 2023.03.25
ArrayList  (0) 2023.03.25
정적 배열 정리  (0) 2023.03.25