java
이 튜토리얼에서는 Java HashSet 클래스에 대해 학습합니다. 예제를 통해 다양한 해시 세트 방법과 연산에 대해 알아보겠습니다.
HashSet
Java Collections 프레임워크의 클래스는 해시 테이블 데이터 구조의 기능을 제공합니다.
Set 인터페이스를 구현합니다.
<시간>
해시 세트를 생성하려면 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
클래스는 집합에서 다양한 작업을 수행할 수 있는 다양한 메서드를 제공합니다.
add()
- 지정된 요소를 집합에 삽입addAll()
- 지정된 컬렉션의 모든 요소를 집합에 삽입합니다.예를 들어,
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]<시간>
해시 세트의 요소에 액세스하려면 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,<시간>
remove()
- 세트에서 지정된 요소를 제거합니다.removeAll()
- 집합에서 모든 요소를 제거합니다.
예를 들어,
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<시간>
메소드 | 설명 |
---|---|
clone() | HashSet 사본을 생성합니다. |
contains() | HashSet 검색 지정된 요소에 대해 부울 결과를 반환합니다. |
isEmpty() | HashSet 인지 확인 비어 있습니다 |
size() | HashSet 의 크기를 반환합니다. |
clear() | HashSet 에서 모든 요소를 제거합니다. |
HashSet 메서드에 대한 자세한 내용은 Java HashSet(공식 Java 설명서)를 참조하십시오.
<시간>
자바에서는 HashSet
요소에 무작위로 액세스해야 하는 경우 일반적으로 사용됩니다. 해시 테이블의 요소에 해시 코드를 사용하여 액세스하기 때문입니다.
요소의 해시코드는 해시 테이블에서 요소를 식별하는 데 도움이 되는 고유한 ID입니다.
HashSet
중복 요소를 포함할 수 없습니다. 따라서 각 해시 집합 요소에는 고유한 해시 코드가 있습니다.
참고: HashSet이 동기화되지 않았습니다. 즉, 여러 스레드가 해시 세트에 동시에 액세스하고 스레드 중 하나가 해시 세트를 수정하는 경우입니다. 그런 다음 외부에서 동기화되어야 합니다.
java
자바 PrintStream 클래스 이 자습서에서는 예제를 통해 Java PrintStream 클래스와 해당 print() 및 printf() 메서드에 대해 배웁니다. PrintStream java.io 클래스 패키지는 바이트 대신 일반적으로 읽을 수 있는 형식(텍스트)으로 출력 데이터를 쓰는 데 사용할 수 있습니다. 추상 클래스 OutputStream를 확장합니다. . PrintStream 작업 다른 출력 스트림과 달리 PrintStream 기본 데이터(정수, 문자)를 바이트 대신 텍스트 형식으로 변환합니다. 그런 다음
일반적으로 Numbers로 작업할 때 byte, int, long, double 등과 같은 기본 데이터 유형을 사용합니다. 예시 int i = 5000; float gpa = 13.65f; double mask = 125; 그러나 개발 과정에서 기본 데이터 유형 대신 객체를 사용해야 하는 상황을 접하게 됩니다. 이를 달성하기 위해 Java는 래퍼 클래스를 제공합니다. . 모든 래퍼 클래스(Integer, Long, Byte, Double, Float, Short)는 추상 클래스 Number의 하위 클래스입니다. 래퍼 클래