java
이 자습서에서는 예제를 통해 Java LinkedHashSet 클래스와 해당 메서드에 대해 알아봅니다.
LinkedHashSet
Java 컬렉션 프레임워크의 클래스는 해시 테이블과 연결 목록 데이터 구조의 기능을 모두 제공합니다.
Set 인터페이스를 구현합니다.
LinkedHashSet
의 요소 HashSet과 유사한 해시 테이블에 저장됩니다.
그러나 연결된 해시 집합은 모든 요소에 대해 내부적으로 이중 연결 목록을 유지합니다. 연결 목록은 해시 테이블에 요소가 삽입되는 순서를 정의합니다.
<시간>
연결된 해시 세트를 생성하려면 java.util.LinkedHashSet
를 가져와야 합니다. 먼저 포장하십시오.
패키지를 가져온 후 Java에서 연결된 해시 집합을 만드는 방법은 다음과 같습니다.
// LinkedHashSet with 8 capacity and 0.75 load factor
LinkedHashSet<Integer> numbers = new LinkedHashSet<>(8, 0.75);
여기에서 numbers라는 연결된 해시 집합을 만들었습니다. .
new LinkedHashSet<>(8, 0.75)
부분을 주목하세요. . 여기서 첫 번째 매개변수는 용량입니다. 두 번째 매개변수는 loadFactor입니다. .
기본 용량 및 부하율
용량과 부하율을 정의하지 않고 연결된 해시 집합을 생성할 수 있습니다. 예를 들어,
// LinkedHashSet with default capacity and load factor
LinkedHashSet<Integer> numbers1 = new LinkedHashSet<>();
기본적으로
다음은 다른 컬렉션의 모든 요소를 포함하는 연결된 해시 집합을 만드는 방법입니다.
import java.util.LinkedHashSet;
import java.util.ArrayList;
class Main {
public static void main(String[] args) {
// Creating an arrayList of even numbers
ArrayList<Integer> evenNumbers = new ArrayList<>();
evenNumbers.add(2);
evenNumbers.add(4);
System.out.println("ArrayList: " + evenNumbers);
// Creating a LinkedHashSet from an ArrayList
LinkedHashSet<Integer> numbers = new LinkedHashSet<>(evenNumbers);
System.out.println("LinkedHashSet: " + numbers);
}
}
출력
ArrayList: [2, 4] LinkedHashSet: [2, 4]<시간>
LinkedHashSet
클래스는 연결된 해시 집합에 대해 다양한 작업을 수행할 수 있는 메서드를 제공합니다.
add()
- 연결된 해시 집합에 지정된 요소를 삽입합니다.addAll()
- 연결된 해시 세트에 지정된 컬렉션의 모든 요소를 삽입합니다.예를 들어,
import java.util.LinkedHashSet;
class Main {
public static void main(String[] args) {
LinkedHashSet<Integer> evenNumber = new LinkedHashSet<>();
// Using add() method
evenNumber.add(2);
evenNumber.add(4);
evenNumber.add(6);
System.out.println("LinkedHashSet: " + evenNumber);
LinkedHashSet<Integer> numbers = new LinkedHashSet<>();
// Using addAll() method
numbers.addAll(evenNumber);
numbers.add(5);
System.out.println("New LinkedHashSet: " + numbers);
}
}
출력
LinkedHashSet: [2, 4, 6] New LinkedHashSet: [2, 4, 6, 5]<시간>
연결된 해시 집합의 요소에 액세스하려면 iterator()
을 사용할 수 있습니다. 방법. 이 방법을 사용하려면 java.util.Iterator
를 가져와야 합니다. 패키지. 예를 들어,
import java.util.LinkedHashSet;
import java.util.Iterator;
class Main {
public static void main(String[] args) {
LinkedHashSet<Integer> numbers = new LinkedHashSet<>();
numbers.add(2);
numbers.add(5);
numbers.add(6);
System.out.println("LinkedHashSet: " + numbers);
// Calling the iterator() method
Iterator<Integer> iterate = numbers.iterator();
System.out.print("LinkedHashSet using Iterator: ");
// Accessing elements
while(iterate.hasNext()) {
System.out.print(iterate.next());
System.out.print(", ");
}
}
}
출력
LinkedHashSet: [2, 5, 6] LinkedHashSet using Iterator: 2, 5, 6,
참고 :
hasNext()
true
반환 연결된 해시 집합에 다음 요소가 있는 경우next()
연결된 해시 집합의 다음 요소를 반환합니다.remove()
- 연결된 해시 집합에서 지정된 요소를 제거합니다.removeAll()
- 연결된 해시 집합에서 모든 요소를 제거합니다.예를 들어,
import java.util.LinkedHashSet;
class Main {
public static void main(String[] args) {
LinkedHashSet<Integer> numbers = new LinkedHashSet<>();
numbers.add(2);
numbers.add(5);
numbers.add(6);
System.out.println("LinkedHashSet: " + numbers);
// Using the 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);
}
}
출력
LinkedHashSet: [2, 5, 6] Is 5 removed? true Are all elements removed? true<시간>
LinkedHashSet
의 다양한 메소드 다양한 집합 작업을 수행하는 데 사용할 수도 있습니다.
둘은 두 세트 간의 합집합을 수행합니다. addAll()
를 사용할 수 있습니다. 방법. 예를 들어,
import java.util.LinkedHashSet;
class Main {
public static void main(String[] args) {
LinkedHashSet<Integer> evenNumbers = new LinkedHashSet<>();
evenNumbers.add(2);
evenNumbers.add(4);
System.out.println("LinkedHashSet1: " + evenNumbers);
LinkedHashSet<Integer> numbers = new LinkedHashSet<>();
numbers.add(1);
numbers.add(3);
System.out.println("LinkedHashSet2: " + numbers);
// Union of two set
numbers.addAll(evenNumbers);
System.out.println("Union is: " + numbers);
}
}
출력
LinkedHashSet1: [2, 4] LinkedHashSet2: [1, 3] Union is: [1, 3, 2, 4]<시간>
두 세트 사이의 교집합을 수행하려면 retainAll()
를 사용할 수 있습니다. 방법. 예를 들어
import java.util.LinkedHashSet;
class Main {
public static void main(String[] args) {
LinkedHashSet<Integer> primeNumbers = new LinkedHashSet<>();
primeNumbers.add(2);
primeNumbers.add(3);
System.out.println("LinkedHashSet1: " + primeNumbers);
LinkedHashSet<Integer> evenNumbers = new LinkedHashSet<>();
evenNumbers.add(2);
evenNumbers.add(4);
System.out.println("LinkedHashSet2: " + evenNumbers);
// Intersection of two sets
evenNumbers.retainAll(primeNumbers);
System.out.println("Intersection is: " + evenNumbers);
}
}
출력
LinkedHashSet1: [2, 3] LinkedHashSet2: [2, 4] Intersection is: [2]<시간>
두 세트의 차이를 계산하기 위해 removeAll()
을 사용할 수 있습니다. 방법. 예를 들어,
import java.util.LinkedHashSet;
class Main {
public static void main(String[] args) {
LinkedHashSet<Integer> primeNumbers = new LinkedHashSet<>();
primeNumbers.add(2);
primeNumbers.add(3);
primeNumbers.add(5);
System.out.println("LinkedHashSet1: " + primeNumbers);
LinkedHashSet<Integer> oddNumbers = new LinkedHashSet<>();
oddNumbers.add(1);
oddNumbers.add(3);
oddNumbers.add(5);
System.out.println("LinkedHashSet2: " + oddNumbers);
// Difference between LinkedHashSet1 and LinkedHashSet2
primeNumbers.removeAll(oddNumbers);
System.out.println("Difference : " + primeNumbers);
}
}
출력
LinkedHashSet1: [2, 3, 5] LinkedHashSet2: [1, 3, 5] Difference: [2]<시간>
집합이 다른 집합의 하위 집합인지 확인하려면 containsAll()
을 사용할 수 있습니다. 방법. 예를 들어,
import java.util.LinkedHashSet;
class Main {
public static void main(String[] args) {
LinkedHashSet<Integer> numbers = new LinkedHashSet<>();
numbers.add(1);
numbers.add(2);
numbers.add(3);
numbers.add(4);
System.out.println("LinkedHashSet1: " + numbers);
LinkedHashSet<Integer> primeNumbers = new LinkedHashSet<>();
primeNumbers.add(2);
primeNumbers.add(3);
System.out.println("LinkedHashSet2: " + primeNumbers);
// Check if primeNumbers is a subset of numbers
boolean result = numbers.containsAll(primeNumbers);
System.out.println("Is LinkedHashSet2 is subset of LinkedHashSet1? " + result);
}
}
출력
LinkedHashSet1: [1, 2, 3, 4] LinkedHashSet2: [2, 3] Is LinkedHashSet2 is a subset of LinkedHashSet1? true<시간>
메소드 | 설명 |
---|---|
clone() | LinkedHashSet 사본을 생성합니다. |
contains() | LinkedHashSet 검색 지정된 요소에 대해 부울 결과를 반환합니다. |
isEmpty() | LinkedHashSet 인지 확인 비어 있습니다 |
size() | LinkedHashSet 의 크기를 반환합니다. |
clear() | LinkedHashSet 에서 모든 요소를 제거합니다. |
LinkedHashSet
에 대해 자세히 알아보려면 방법은 Java LinkedHashSet(공식 Java 설명서)를 참조하십시오.
LinkedHashSet
둘 다 및 HashSet
Set
구현 상호 작용. 그러나 그들 사이에는 몇 가지 차이점이 있습니다.
LinkedHashSet
내부적으로 연결 목록을 유지합니다. 이 때문에 요소의 삽입 순서를 유지합니다.LinkedHashSet
클래스에 HashSet
보다 더 많은 저장 공간이 필요합니다. . LinkedHashSet
때문입니다. 내부적으로 연결 목록을 유지합니다.LinkedHashSet
의 성능 HashSet
보다 느림 . LinkedHashSet
에 있는 연결 목록 때문입니다. .
LinkedHashSet
의 주요 차이점은 다음과 같습니다. 및 TreeSet
:
TreeSet
클래스는 SortedSet
을 구현합니다. 상호 작용. 이것이 트리 세트의 요소가 정렬되는 이유입니다. 그러나 LinkedHashSet
클래스는 요소의 삽입 순서만 유지합니다.TreeSet
일반적으로 LinkedHashSet
보다 느립니다. . TreeSet
에 요소가 추가될 때마다 , 정렬 작업을 수행해야 합니다.LinkedHashSet
null 값을 삽입할 수 있습니다. 그러나 TreeSet
에 null 값을 삽입할 수 없습니다. .무작위> java
자바 ArrayDeque 이 자습서에서는 예제를 통해 ArrayDeque 클래스와 해당 메서드에 대해 알아봅니다. 또한 배열 deque를 사용하여 스택을 구현하는 방법을 배웁니다. 자바에서는 ArrayDeque를 사용할 수 있습니다. 배열을 사용하여 queue 및 deque 데이터 구조를 구현하는 클래스입니다. ArrayDeque에 의해 구현된 인터페이스 ArrayDeque 클래스는 다음 두 인터페이스를 구현합니다. 자바 대기열 인터페이스 자바 데크 인터페이스 ArrayDeque 생성 배열 데크를 생성하려면 jav
자바 LinkedHashSet 이 자습서에서는 예제를 통해 Java LinkedHashSet 클래스와 해당 메서드에 대해 알아봅니다. LinkedHashSet Java 컬렉션 프레임워크의 클래스는 해시 테이블과 연결 목록 데이터 구조의 기능을 모두 제공합니다. Set 인터페이스를 구현합니다. LinkedHashSet의 요소 HashSet과 유사한 해시 테이블에 저장됩니다. 그러나 연결된 해시 집합은 모든 요소에 대해 내부적으로 이중 연결 목록을 유지합니다. 연결 목록은 해시 테이블에 요소가 삽입되는 순서를 정의합니다.