ezhoon

Set - HashSet, TreeSet, LinkedHashSet 본문

Java/이론 및 사용방법

Set - HashSet, TreeSet, LinkedHashSet

ezhoon 2022. 1. 17. 22:30

Set 컬렉션

Set 컬렉션은 저장 순서가 유지되지 않습니다.

주로 객체의 중복을 제거할 때 사용합니다. 

 

Set 인터페이스를 구현한 클래스로는 HashSet, TreeSet, LinkedHashSet이 있습니다.

 

주요 특징

  • HashSet - 정렬을 해주지 않아 따로 정렬을 해줘야 한다.
  • TreeSet - 오름차순으로 자동정렬이 된다.
  • LinkedHashSet - 입력된 순서대로 데이터를 관리해준다.

표로 정리하면 아래와 같다.

클래스 특징
HashSet 정렬이 필요없는 데이터를 저장한다.
Set 중에 가장 성능이 좋다.
TreeSet 저장된 데이터 값에 따라 정렬된다 (오름차순)
HashSet보다 느리다.
LinkedHashSet 저장된 순서에따라 값이 정렬된다. 셋 중 가장 느리다.

Set의 가장 큰 장점은 중복을 자동으로 제거해줌과 동시에, 클래스에 따라 정렬까지 한 번에 해준다는 점이다.


Set 인터페이스의 공통적으로 사용 가능한 메서드들

기능 메소드 설명
추가 boolean add(E e) 객체를 저장 후 성공이면 true, 실패면 false 리턴
검색 boolean contains (Object o) 객체가 저장돼 있는지 여부 확인
검색 boolean isEmpty() 컬렉션이 비어있는지 확인
검색 Iterator iterator() 저장된 객체를 한 번씩 가져오는 반복자 리턴
검색 int size() 저장된 모든 객체 수 리턴
삭제 void clear() 저장된 모든 객체를 삭제
삭제 boolean remove(Object o) 주어진 객체를 삭제
// iIterator iterator() 예시
Set<String> set = new HashSet<String>();
Iterator<String> iterator = set.iterator();

Iterator의 메서드

타입 메소드 설명
boolean hasNext() 가져올 객체가 있다면 true, 없으면 false를 리턴
E next() 하나의 객체를 가져온다.
void remove() 객체를 제거한다.

 

 

 

예제 문제 풀이

2022.01.17 - [인프런_자바_알고리즘_기초] - [인프런] 01-06 중복 문자 제거

 

[인프런] 01-06 중복문자제거

문제 한 개의 문자열 입력 중복된 문자 제거 후 출력 각 문자는 원래 문자열의 순서를 유지할 것 ⚠️ 주의사항 문자열의 순서를 유지해야 하므로 HashSet으로 정렬하기는 어려울 것 같으니 다른

ezhoon.tistory.com

 

 

참고 블로그

@gillog/HashSet

'Java > 이론 및 사용방법' 카테고리의 다른 글

선택정렬  (0) 2022.02.02
Queue 주요 기능 정리  (0) 2022.01.27
Stack 주요 기능 정리  (0) 2022.01.26
Map - HashMap  (0) 2022.01.23
EOF이란 무엇인가?  (0) 2022.01.06
Comments