자바생
728x90

📌Set 인터페이스를 구현하는 클래스

- HashSet, TreeSet, LinkedHashSet 등

 

📌Set 특징

-List와 다르게 객체를 중복해서 저장할 수 없다.

ex) 20 10 10 30 40

20 10 30 40만 저장됨.

중복해서 저장할 수 없는 대신에 순서가 보장되지 않는다.

 

📌Set 공통 메소드

boolean add(E e) 

- 객체 저장 후 성공이면 true, 실패면 false를 리턴

 

boolean contains(Object o)

- 객체가 있는지 여부 리턴

 

boolean isEmpty()

- 컬렉션이 비어있는지 확인

 

boolean remove(Object o)

- 인자로 받은 요소를 삭제한다.

 

int size()

- 요소의 개수를 리턴

 

Object[] toArray()

-set을 array로 바꾼다.

 

<T> T[] toArray(T[] a)

-set을 인자로 받은 배열에 저장한다.

 

📌HashSet

Set 컬렉션을 구현하는 대표적인 클래스이다.

ex) Set<Integer> set = new HashSet<>();

 

📌TreeSet 특징

이진 탐색 트리 구조를 가짐

- HashSet보다 데이터의 추가와 삭제는 느리지만, 검색과 정렬에는 빠르다.

- 기본적으로는 오름차순으로 정렬되지만, comparator를 통해 정렬 방법을 수정할 수 있다.

 

📌TreeSet 메소드

E first()

- set에서 가장 첫 번째 값, 즉, 가장 작은 값 리턴

 

E last()

- set에서 최댓값 리턴

 

E floor(E e)

- 인자와 같은 객체 리턴, 만약 없다면 작은 값 중에 가장 큰 값을 리턴, 이것도 없으면 null 리턴

 

E ceiling(E e)

- 인자와 같은 객체 리턴, 만약 없다면 큰 값 중에 가장 작은 값 리턴, 이것도 없으면 null 리턴

 

E lower(E e)

- 인자보다 작은 값을 가진 객체 중에 가장 큰 값 리턴, 없으면 null 리턴

 

E higher(E e)

- 인자보다 큰 값을 가진 객체 중에 가장 작은 값 리턴, 없으면 null 리턴 

 

📌LinkedHashSet

LinkedHashSet도 중복된 데이터를 저장하지 않고, 입력한 순서대로 데이터가 저장이 된다.

 

📌Set을 List로 변환하는 방법은

Set<Integer> set = new HashSet<>();

List<Integer> list = new ArrayList<>(set); 이런 식으로 하면 된다.

 

728x90
profile

자바생

@자바생

틀린 부분이 있다면 댓글 부탁드립니다~😀

검색 태그