반응형
셋(Set)이란?
Set은 순서에 상관없이, 어떤 데이터가 존재하는지를 확인하기 위한 용도로 많이 사용된다. 중복되는 것을 방지하고, 원하는 값이 포함되어 있는지를 확인하는 것이 주 용도이다.
- HashSet: 순서가 전혀 필요 없는 데이터를 해시 테이블에 저장한다. Set 중에 가장 성능이 좋다.
- TreeSet: 저장된 데이터의 값에 따라서 정렬되는 셋이다. red-black 트리로 값이 저장되며, HashSet보다 약간 성능이 느리다.
- LinkedHashSet: 연결된 목록 타입으로 구현된 해시 테이블에 데이터를 저장한다. 저장된 순서에 따라서 값이 정렬된다. 대신 성능이 셋 중에서 가낭 느리다.
HashSet
HashSet 주요 메소드
리턴 타입 | 메소드 이름 및 매개 변수 | 설명 |
---|---|---|
boolean | add(E e) | 데이터를 추가한다. |
void | clear() | 모든 데이터를 삭제한다. |
boolean | contains(Object o) | 지정한 객체가 존재하는지를 확인한다. |
boolean | isEmpty() | 데이터가 있는지를 확인한다. |
boolean | remove(Object o) | 매개 변수로 넘어온 객체를 삭제한다. |
int | size() | 데이터의 개수를 리턴한다. |
HashSet 사용방법
String[] cars = new Strint[]{
"Tico", "Sonata", "BMW", "Mustang",
"BMW", "Mustang", "Tico", "Grandeure"
}
Set<String> carSet = new HashSet<String>();
for(String car: cars){
carSet.add(car);
}
System.out.println(carSet.size());
carSet에는 중복지 않는 유일한 자동차 종류의 값만 남게되어서 자동차 종류의 개수를 쉽게 파악할 수 있다.
이처럼 HashSet과 같은 Set을 사용하면 여러 중복되는 값들을 걸러내는데 매우 유용하다.
참고자료
자바의 神1 2nd Edition / 이상민 지음
반응형
'Java' 카테고리의 다른 글
[Java] 스트림(Stream) (0) | 2022.02.16 |
---|---|
[Java] 자바 컬렉션 Map (0) | 2022.01.11 |
[Java] String 클래스 정리 (0) | 2022.01.08 |
[Java] 상속이란? (0) | 2022.01.06 |
[Java] 변수와 자료형 (0) | 2022.01.04 |