[JAVA] JAVA Set 기초 정리
JAVA 의 Set 에 대해서 알아보도록 하겠습니다.
Set 은 중복을 허용하지 않도록 할 때 주로 사용되는 자료구조 입니다.
Set 이란?
Set 은 자료구조 중 하나로 특정한 값들을 저장하는 추상 자료형 입니다. Set 에 담긴 값들은 순서가 존재하지 않으며 중복을 허용하지 않습니다. 이는 수학에서의 유한 집합을 컴퓨터로 구현한 것이기 때문입니다.
Set 은 주로 대상 원소가 Set 에 소속되었는지 여부를 검사하는 목적으로 자주 사용됩니다.
Set 특징
- 데이터를 비순차적으로 저장할 수 있는 순열 자료구조
- 삽입한 데이터가 순서대로 저장되지 않음
- 중복 불가능
Set 구현 클래스
- HashSet : Set 을 구현하는 대표 클래스
- TreeSet : HashSet 특성 + 오름차순으로 데이터를 정렬
- LinkedHashSEt : 입력한 순서대로 데이터를 저장합니다.
자주 사용되는 Set 인터페이스
|메소드명|리턴 타입|설명|
|:—-:|:——:|:–:|
|add(E e)|boolean|입력 파라매터를 Set 에 추가합니다. 추가하고자 하는 값이 Set 에 이미 있을 경우 false 를 반환합니다.|
|remove(Object o)|boolean|입력 파라매터가 Set 에 존재하는 경우 제거합니다.|
|contains(Object o)|boolean|입력 파라매터가 Set 에 있는지 확인합니다. Set 에 있다면 true 를 없다면 false 를 반환합니다.|
|equals(Obejct o)|boolean|입력 파라매터와 Set 이 동일한지 비교합니다. 동일하다면 true 를 그렇지 않다면 false 를 반환합니다.|
|isEmpty()|boolean|Set 이 비었는지 확인합니다. 비었다면 true 를 그게 아니라면 false 를 반환합니다.|
|size()|int|Set 의 요소 개수를 반환합니다.|
|clear()|void|Set 에 있는 모든 요소들을 제거합니다.|
마치며
Set 에 대해서 알아보았습니다. Set 은 많이 쓰이긴 하지만 그 쓰임새가 List 나 Map 보다는 많지가 않아 간단하게 다루어 보았습니다.
Set 은 중복을 허용하지 않으며, 구성 요소 간의 순서가 없고, contains 메소드의 시간 복잡도가 O(1) 인 것을 참고해 Set 은 List 와 같이 순회를 하며 요소를 가져와 작업을 하는 것 보단 요소들이 있는지 없는지 체크하기 위한 용도가 필요할 때 사용하면 될 것 같습니다.
긴 글 읽어주셔서 감사드리며, 궁금한 내용이나 잘못된 내용 오타가 있을 경우 댓글 달아주시기 바랍니다.
참조
https://docs.oracle.com/javase/8/docs/api/java/util/Set.html
Comments