[Java] HashSet 사용 방법 및 개념

2021. 6. 28. 18:37·Programming/Java Spring
반응형

HashSet이란?

HashSet은 중복해서 저장하지 않은 집합이라고 볼 수 있습니다. 

HashSet<String> set = new HashSet<String>();
set.add("철수");
set.add("영수");
set.add("철수");

// 2출력
System.out.print(set.size());

위의 결과값은 2가 나옵니다. 만약 순서가 중요하시면 LinkedHashSet을 이용하시면 되고, 자동으로 정렬을 하고 싶다면 TreeSet을 이용하시면 됩니다.

TreeSet<String> set = new TreeSet<String>();
set.add("a");
set.add("c");
set.add("b");

while (iterator.hasNext()) {
  String str = iterator.next();
  System.out.println(str); // a, b, c 출력
}

일반적인 사용

HashSet의 경우 중복을 저장하지 않기 때문에 일별 누적 방문자 또는 중복을 허용하지 않는 알고리즘 문제를 풀 때 사용하시면 좋습니다. 

 

HashSet을 사용하지 않는다면 중복을 허용하지 않는 값을 알기 위해서 for문과 배열의 조합으로 구현해야 하는데 차라리 오히려 복잡하고 잘못될 수 있는 경우가 발생할 수 있습니다.

 

Java에서 문서를 살펴보면 이미 고민했던 클래스와 인터페이스들을 찾아볼 수 있으니 공식문서 API를 살펴보면 좋을 것 같습니다.(https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/HashSet.html)

 

HashSet (Java SE 16 & JDK 16)

Type Parameters: E - the type of elements maintained by this set All Implemented Interfaces: Serializable, Cloneable, Iterable , Collection , Set Direct Known Subclasses: JobStateReasons, LinkedHashSet This class implements the Set interface, backed by a h

docs.oracle.com

 

 

728x90

'Programming > Java Spring' 카테고리의 다른 글

[Java] Integer List int 배열로 변환하는 방법  (0) 2022.01.25
[Java] Java 8 LocalDateTime 직렬화 역직렬화 오류 해결 방법  (0) 2021.07.24
[알고리즘 / Java] 선택 정렬(Selection Sort)에 대해서  (0) 2018.03.05
[Java] 컬렉션 프레임워크에 대한 이해  (0) 2017.09.19
[Java / 설치] Eclipse 설치 및 Apache Tomcat 설치 및 연동하기  (0) 2017.08.16
'Programming/Java Spring' 카테고리의 다른 글
  • [Java] Integer List int 배열로 변환하는 방법
  • [Java] Java 8 LocalDateTime 직렬화 역직렬화 오류 해결 방법
  • [알고리즘 / Java] 선택 정렬(Selection Sort)에 대해서
  • [Java] 컬렉션 프레임워크에 대한 이해
이프로그
이프로그
리뷰, 개발, 일상을 기록하는 블로그
    반응형
  • 이프로그
    이프로그의 IT이야기
    이프로그
  • 전체
    오늘
    어제
    • 분류 전체보기 (161)
      • Programming (111)
        • C# WPF (11)
        • Java Spring (16)
        • JavaScript & TypeScript (5)
        • Git (9)
        • Database (5)
        • Etc (42)
      • 생활상식 (24)
      • 리뷰 (8)
      • 주식 (12)
  • 블로그 메뉴

    • 링크

    • 공지사항

    • 인기 글

    • 태그

      XAML
      투자
      C# WPF
      rest api
      ES6
      데이터베이스 성능
      Kubernetes
      웹 개발
      docker
      javascript
      투자전략
      재테크
      데이터 바인딩
      분산 메시징 시스템
      클라우드 네이티브
      데이터 파이프라인
      Apache Kafka
      주식투자
      이슈 트래킹
      서버 관리
      Java
      WPF
      클라우드 컴퓨팅
      마이크로서비스
      자바스크립트 트릭
      java8
      소프트웨어 개발
      DevOps
      협업 도구
      dynamicresource
    • 최근 댓글

    • 최근 글

    • 250x250
    이프로그
    [Java] HashSet 사용 방법 및 개념
    상단으로

    티스토리툴바