loading
본문 바로가기
Language/Java

[ Java ] HashSet 이란?

by NeuLyeo 2023. 11. 22.

[ Java ] HashSet 이란?

 

 

📚 Table of Contents

     

     

     

    HashSet은 Set 인터페이스에서 지원하는 구현 클래스이다.

     

    때문에 Set의 성질을 그대로 상속받는 다는 것이 특징이다.

     

     

     

    HashSet 특징

    • 중복 허용 안함: 같은 요소를 중복해서 추가할 수 없다.

    • 순서 보장 안함: HashSet은 요소들의 순서가 없다.

    • 널(null) 값 허용: HashSet에는 하나의 널 값만 저장할 수 있다.

     

     

     

    HashSet 구현 및 주요 메서드

    HashSet 생성

    // 타입을 지정 가능
    HashSet<String> hsset = new HashSet<String>();
    
    // 타입을 생략하여 사용 가능 -> 빈 HashSet생성 시 사용
    HashSet<String> hsset1 = new HashSet<>();  
    
    // 초기 용량(Capacity) 설정
    HashSet<String> hsset2 = new HashSet<>(10); 
    
     // animal의 모든 값을 가진 HashSet 생성 
    HashSet<String> hsset3 = new HashSet<>(animals1);
    
    //초기값 지정 가능
    HashSet<String> hsset4 = new HashSet<>(Arrays.asList("tiger", "lion", "fox")); 

     

     

     

     

    HashSet 요소 추가

    Hash에 add() 메소드를 호출하여 값을 추가 가능하다.


    중복 값을 허용하지 않아 같은 값을 2번 하더라도 1번만 들어간다.

    hsset.add("tiger");
    hsset.add("tiger");
    hsset.add("lion");
    hsset.add("fox");
    
    System.out.println("hsset : " + hsset); // {tiger, lion, fox}

     

     

     

     

    HashSet 요소 삭제

    hsset.remove("tiger");
    hsset.remove("fox");
    
    System.out.println("hsset : " + hsset); // { lio }

     

     

     

     

    HashSet 요소 확인

    if (hsset.contains("tiger")) {
        System.out.println("data가 존재합니다.");
    } else {
        System.out.println("data가 존재하지 않습니다."); // 출력
    }

     

     

     

     

    HashSet 크기 확인

    int size = hsset.size();
    
    System.out.println(size); // 1

     

     

     

     

    HashSet 사용 사례

    • 배열이나 리스트에서 중복된 값을 제거하는데 활용
    • 집합에 관련된 다양한 연산 ( 교집합, 합집합, 차집합 ) 을 제공
    • 데이터의 순서가 중요하지 않는 상황에서 유용하게 활용

     

     

     

     

     

     

    reference

     

    자바 HashSet개념 및 클래스 메서드 예제 정리 - IT장군 Need Action

    자바 프로그래밍을 하다보면 다양한 데이터를 관리하고 조작해야 할 때가 있습니다. 그러한 상황에서 효율적으로 데이터를 관리하기 위한 컬렉션 프레임워크가 필요한데, 그 중 하나가 바로 Has

    needactionblog.com

     

    'Language > Java' 카테고리의 다른 글

    [ Java ] 버퍼 ( Buffer )  (0) 2023.12.06
    [ Java ] 스트림 ( Stream )  (2) 2023.11.23
    [ Java ] 13. 예외 처리 ( exception handling )  (0) 2023.11.09
    [ Java ] 12. 자바 입출력  (0) 2023.11.09
    [ Java ] 11. 내부 클래스 ( inner class )  (0) 2023.11.09