본문 바로가기

Java

[Java] 자바 컬렉션 Set

반응형

셋(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