산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial programming >> java

자바 HashSet 클래스

자바 HashSet 클래스

이 튜토리얼에서는 Java HashSet 클래스에 대해 학습합니다. 예제를 통해 다양한 해시 세트 방법과 연산에 대해 알아보겠습니다.

HashSet Java Collections 프레임워크의 클래스는 해시 테이블 데이터 구조의 기능을 제공합니다.

Set 인터페이스를 구현합니다.

<시간>

HashSet 만들기

해시 세트를 생성하려면 java.util.HashSet을 가져와야 합니다. 먼저 포장하십시오.

패키지를 가져온 후 Java에서 해시 세트를 만드는 방법은 다음과 같습니다.

// HashSet with 8 capacity and 0.75 load factor
HashSet<Integer> numbers = new HashSet<>(8, 0.75);

여기에서 numbers라는 해시 세트를 만들었습니다. .

HashSet<>(8, 0.75) 부분에 유의하세요. . 여기서 첫 번째 매개변수는 용량입니다. , 두 번째 매개변수는 loadFactor입니다. .

기본 용량 및 부하율

용량과 부하율을 정의하지 않고 해시 테이블을 생성하는 것이 가능합니다. 예를 들어,

// HashSet with default capacity and load factor
HashSet<Integer> numbers1 = new HashSet<>();

기본적으로

<시간>

HashSet 메소드

HashSet 클래스는 집합에서 다양한 작업을 수행할 수 있는 다양한 메서드를 제공합니다.

<시간>

HashSet에 요소 삽입

예를 들어,

import java.util.HashSet;

class Main {
    public static void main(String[] args) {
        HashSet<Integer> evenNumber = new HashSet<>();

        // Using add() method
        evenNumber.add(2);
        evenNumber.add(4);
        evenNumber.add(6);
        System.out.println("HashSet: " + evenNumber);

        HashSet<Integer> numbers = new HashSet<>();
        
        // Using addAll() method
        numbers.addAll(evenNumber);
        numbers.add(5);
        System.out.println("New HashSet: " + numbers);
    }
}

출력

HashSet: [2, 4, 6]
New HashSet: [2, 4, 5, 6]
<시간>

HashSet 요소 액세스

해시 세트의 요소에 액세스하려면 iterator()을 사용할 수 있습니다. 방법. 이 방법을 사용하려면 java.util.Iterator을 가져와야 합니다. 패키지. 예를 들어,

import java.util.HashSet;
import java.util.Iterator;

class Main {
    public static void main(String[] args) {
        HashSet<Integer> numbers = new HashSet<>();
        numbers.add(2);
        numbers.add(5);
        numbers.add(6);
        System.out.println("HashSet: " + numbers);

        // Calling iterator() method
        Iterator<Integer> iterate = numbers.iterator();
        System.out.print("HashSet using Iterator: ");
        // Accessing elements
        while(iterate.hasNext()) {
            System.out.print(iterate.next());
            System.out.print(", ");
        }
    }
}

출력

HashSet: [2, 5, 6]
HashSet using Iterator: 2, 5, 6,
<시간>

요소 제거

예를 들어,

import java.util.HashSet;

class Main {
    public static void main(String[] args) {
        HashSet<Integer> numbers = new HashSet<>();
        numbers.add(2);
        numbers.add(5);
        numbers.add(6);
        System.out.println("HashSet: " + numbers);

        // Using remove() method
        boolean value1 = numbers.remove(5);
        System.out.println("Is 5 removed? " + value1);

        boolean value2 = numbers.removeAll(numbers);
        System.out.println("Are all elements removed? " + value2);
    }
}

출력

HashSet: [2, 5, 6]
Is 5 removed? true
Are all elements removed? true
<시간>

작업 설정

HashSet의 다양한 메소드 다양한 집합 작업을 수행하는 데 사용할 수도 있습니다.

<시간>

집합 조합

두 세트 간의 합집합을 수행하려면 addAll()을 사용할 수 있습니다. 방법. 예를 들어,

import java.util.HashSet;

class Main {
    public static void main(String[] args) {
        HashSet<Integer> evenNumbers = new HashSet<>();
        evenNumbers.add(2);
        evenNumbers.add(4);
        System.out.println("HashSet1: " + evenNumbers);

        HashSet<Integer> numbers = new HashSet<>();
        numbers.add(1);
        numbers.add(3);
        System.out.println("HashSet2: " + numbers);

        // Union of two set
        numbers.addAll(evenNumbers);
        System.out.println("Union is: " + numbers);
    }
}

출력

HashSet1: [2, 4]
HashSet2: [1, 3]
Union is: [1, 2, 3, 4]
<시간>

집합의 교차

두 세트 사이의 교집합을 수행하려면 retainAll()를 사용할 수 있습니다. 방법. 예를 들어

import java.util.HashSet;

class Main {
    public static void main(String[] args) {
        HashSet<Integer> primeNumbers = new HashSet<>();
        primeNumbers.add(2);
        primeNumbers.add(3);
        System.out.println("HashSet1: " + primeNumbers);

        HashSet<Integer> evenNumbers = new HashSet<>();
        evenNumbers.add(2);
        evenNumbers.add(4);
        System.out.println("HashSet2: " + evenNumbers);

        // Intersection of two sets
        evenNumbers.retainAll(primeNumbers);
        System.out.println("Intersection is: " + evenNumbers);
    }
}

출력

HashSet1: [2, 3]
HashSet2: [2, 4]
Intersection is: [2]
<시간>

세트의 차이

두 세트의 차이를 계산하기 위해 removeAll()를 사용할 수 있습니다. 방법. 예를 들어,

import java.util.HashSet;

class Main {
    public static void main(String[] args) {
        HashSet<Integer> primeNumbers = new HashSet<>();
        primeNumbers.add(2);
        primeNumbers.add(3);
        primeNumbers.add(5);
        System.out.println("HashSet1: " + primeNumbers);

        HashSet<Integer> oddNumbers = new HashSet<>();
        oddNumbers.add(1);
        oddNumbers.add(3);
        oddNumbers.add(5);
        System.out.println("HashSet2: " + oddNumbers);

        // Difference between HashSet1 and HashSet2
        primeNumbers.removeAll(oddNumbers);
        System.out.println("Difference : " + primeNumbers);
    }
}

출력

HashSet1: [2, 3, 5]
HashSet2: [1, 3, 5]
Difference: [2]
<시간>

서브셋

집합이 다른 집합의 하위 집합인지 확인하려면 containsAll()를 사용할 수 있습니다. 방법. 예를 들어,

import java.util.HashSet;

class Main {
    public static void main(String[] args) {
        HashSet<Integer> numbers = new HashSet<>();
        numbers.add(1);
        numbers.add(2);
        numbers.add(3);
        numbers.add(4);
        System.out.println("HashSet1: " + numbers);

        HashSet<Integer> primeNumbers = new HashSet<>();
        primeNumbers.add(2);
        primeNumbers.add(3);
        System.out.println("HashSet2: " + primeNumbers);

        // Check if primeNumbers is a subset of numbers
        boolean result = numbers.containsAll(primeNumbers);
        System.out.println("Is HashSet2 is subset of HashSet1? " + result);
    }
}

출력

HashSet1: [1, 2, 3, 4]
HashSet2: [2, 3]
Is HashSet2 is a subset of HashSet1? true
<시간>

HashSet의 다른 방법

메소드 설명
clone() HashSet 사본을 생성합니다.
contains() HashSet 검색 지정된 요소에 대해 부울 결과를 반환합니다.
isEmpty() HashSet인지 확인 비어 있습니다
size() HashSet의 크기를 반환합니다.
clear() HashSet에서 모든 요소를 ​​제거합니다.

HashSet 메서드에 대한 자세한 내용은 Java HashSet(공식 Java 설명서)를 참조하십시오.

<시간>

왜 HashSet인가?

자바에서는 HashSet 요소에 무작위로 액세스해야 하는 경우 일반적으로 사용됩니다. 해시 테이블의 요소에 해시 코드를 사용하여 액세스하기 때문입니다.

요소의 해시코드는 해시 테이블에서 요소를 식별하는 데 도움이 되는 고유한 ID입니다.

HashSet 중복 요소를 포함할 수 없습니다. 따라서 각 해시 집합 요소에는 고유한 해시 코드가 있습니다.

참고: HashSet이 동기화되지 않았습니다. 즉, 여러 스레드가 해시 세트에 동시에 액세스하고 스레드 중 하나가 해시 세트를 수정하는 경우입니다. 그런 다음 외부에서 동기화되어야 합니다.


java

  1. 자바 최종 키워드
  2. 자바 instanceof 연산자
  3. 자바 중첩 정적 클래스
  4. 자바 익명 클래스
  5. 자바 싱글톤 클래스
  6. 자바 리플렉션
  7. 자바 알고리즘
  8. 자바 ObjectOutputStream 클래스
  9. 자바 제네릭
  10. 자바 파일 클래스