java
이 자습서에서는 예제를 통해 Java LinkedHashMap 클래스와 해당 작업에 대해 알아봅니다.
LinkedHashMap
Java 컬렉션 프레임워크의 클래스는 Map 인터페이스의 해시 테이블 및 연결 목록 구현을 제공합니다.
LinkedHashMap
인터페이스는 HashMap 클래스를 확장하여 해당 항목을 해시 테이블에 저장합니다. 내부적으로 모든 항목 간에 이중 연결 목록을 유지하여 항목을 정렬합니다.
<시간>
연결된 해시맵을 생성하려면 java.util.LinkedHashMap
을 가져와야 합니다. 먼저 패키지. 패키지를 가져온 후 Java에서 연결된 해시맵을 만드는 방법은 다음과 같습니다.
// LinkedHashMap with initial capacity 8 and load factor 0.6
LinkedHashMap<Key, Value> numbers = new LinkedHashMap<>(8, 0.6f);
위의 코드에서 numbers라는 링크된 해시맵을 만들었습니다. .
여기,
new LinkedHashMap<>(8, 0.6)
부분을 확인하세요. . 여기서 첫 번째 매개변수는 용량입니다. 두 번째 매개변수는 loadFactor입니다. .
기본 용량 및 부하율
용량과 부하율을 정의하지 않고 연결된 해시맵을 생성하는 것이 가능합니다. 예를 들어,
//LinkedHashMap with default capacity and load factor
LinkedHashMap<Key, Value> numbers1 = new LinkedHashMap<>();
기본적으로
참고 :LinkedHashMap
클래스를 사용하면 항목의 순서를 정의할 수도 있습니다. 예를 들어
// LinkedHashMap with specified order
LinkedHashMap<Key, Value> numbers2 = new LinkedHashMap<>(capacity, loadFactor, accessOrder);
여기, accessOrder 부울 값입니다. 기본값은 false
입니다. . 이 경우 연결된 해시맵의 항목은 삽입 순서를 기준으로 정렬됩니다.
그러나 true
인 경우 accessOrder로 전달됩니다. , 연결된 해시맵의 항목은 가장 최근에 액세스한 항목에서 가장 최근에 액세스한 항목 순으로 정렬됩니다.
다음은 다른 지도의 모든 요소를 포함하는 연결된 해시맵을 만드는 방법입니다.
import java.util.LinkedHashMap;
class Main {
public static void main(String[] args) {
// Creating a LinkedHashMap of even numbers
LinkedHashMap<String, Integer> evenNumbers = new LinkedHashMap<>();
evenNumbers.put("Two", 2);
evenNumbers.put("Four", 4);
System.out.println("LinkedHashMap1: " + evenNumbers);
// Creating a LinkedHashMap from other LinkedHashMap
LinkedHashMap<String, Integer> numbers = new LinkedHashMap<>(evenNumbers);
numbers.put("Three", 3);
System.out.println("LinkedHashMap2: " + numbers);
}
}
출력
LinkedHashMap1: {Two=2, Four=4} LinkedHashMap2: {Two=2, Four=4, Three=3}<시간>
LinkedHashMap
클래스는 지도에서 다양한 작업을 수행할 수 있는 메서드를 제공합니다.
put()
- 맵에 지정된 키/값 매핑을 삽입합니다.putAll()
- 지정된 지도의 모든 항목을 이 지도에 삽입합니다.putIfAbsent()
- 지정된 키가 맵에 없으면 지정된 키/값 매핑을 맵에 삽입합니다.예를 들어,
import java.util.LinkedHashMap;
class Main {
public static void main(String[] args) {
// Creating LinkedHashMap of even numbers
LinkedHashMap<String, Integer> evenNumbers = new LinkedHashMap<>();
// Using put()
evenNumbers.put("Two", 2);
evenNumbers.put("Four", 4);
System.out.println("Original LinkedHashMap: " + evenNumbers);
// Using putIfAbsent()
evenNumbers.putIfAbsent("Six", 6);
System.out.println("Updated LinkedHashMap(): " + evenNumbers);
//Creating LinkedHashMap of numbers
LinkedHashMap<String, Integer> numbers = new LinkedHashMap<>();
numbers.put("One", 1);
// Using putAll()
numbers.putAll(evenNumbers);
System.out.println("New LinkedHashMap: " + numbers);
}
}
출력
Original LinkedHashMap: {Two=2, Four=4} Updated LinkedHashMap: {Two=2, Four=4, Six=6} New LinkedHashMap: {One=1, Two=2, Four=4, Six=6}<시간>
1. entrySet(), keySet() 및 values() 사용
entrySet()
- 맵의 모든 키/값 매핑 세트를 반환합니다.keySet()
- 지도의 모든 키 세트를 반환합니다.values()
- 지도의 모든 값 집합을 반환합니다.예를 들어,
import java.util.LinkedHashMap;
class Main {
public static void main(String[] args) {
LinkedHashMap<String, Integer> numbers = new LinkedHashMap<>();
numbers.put("One", 1);
numbers.put("Two", 2);
numbers.put("Three", 3);
System.out.println("LinkedHashMap: " + numbers);
// Using entrySet()
System.out.println("Key/Value mappings: " + numbers.entrySet());
// Using keySet()
System.out.println("Keys: " + numbers.keySet());
// Using values()
System.out.println("Values: " + numbers.values());
}
}
출력
LinkedHashMap: {One=1, Two=2, Three=3} Key/Value mappings: [One=1, Two=2, Three=3] Keys: [One, Two, Three] Values: [1, 2, 3]
2. get() 및 getOrDefault() 사용
get()
- 지정된 키와 관련된 값을 반환합니다. 키를 찾을 수 없으면 null
을 반환합니다. .getOrDefault()
- 지정된 키와 관련된 값을 반환합니다. 키를 찾지 못하면 지정된 기본값을 반환합니다.예를 들어,
import java.util.LinkedHashMap;
class Main {
public static void main(String[] args) {
LinkedHashMap<String, Integer> numbers = new LinkedHashMap<>();
numbers.put("One", 1);
numbers.put("Two", 2);
numbers.put("Three", 3);
System.out.println("LinkedHashMap: " + numbers);
// Using get()
int value1 = numbers.get("Three");
System.out.println("Returned Number: " + value1);
// Using getOrDefault()
int value2 = numbers.getOrDefault("Five", 5);
System.out.println("Returned Number: " + value2);
}
}
출력
LinkedHashMap: {One=1, Two=2, Three=3} Returned Number: 3 Returned Number: 5<시간>
remove(key)
- 지정된 key와 관련된 항목을 반환하고 제거합니다. 지도에서remove(key, value)
- 지정된 key인 경우에만 지도에서 항목을 제거합니다. 지정된 값으로 매핑됨 부울 값 반환예를 들어,
import java.util.LinkedHashMap;
class Main {
public static void main(String[] args) {
LinkedHashMap<String, Integer> numbers = new LinkedHashMap<>();
numbers.put("One", 1);
numbers.put("Two", 2);
numbers.put("Three", 3);
System.out.println("LinkedHashMap: " + numbers);
// remove method with single parameter
int value = numbers.remove("Two");
System.out.println("Removed value: " + value);
// remove method with two parameters
boolean result = numbers.remove("Three", 3);
System.out.println("Is the entry Three removed? " + result);
System.out.println("Updated LinkedHashMap: " + numbers);
}
}
출력
LinkedHashMap: {One=1, Two=2, Three=3} Removed value: 2 Is the entry {Three=3} removed? True Updated LinkedHashMap: {One=1}<시간>
메소드 | 설명 |
---|---|
clear() | 지도에서 모든 항목을 제거합니다. |
containsKey() | 지도에 지정된 키가 포함되어 있는지 확인하고 부울 값을 반환합니다. |
containsValue() | 지도에 지정된 값이 포함되어 있는지 확인하고 부울 값을 반환합니다. |
size() | 지도의 크기를 반환 |
isEmpty() | 지도가 비어 있는지 확인하고 부울 값을 반환합니다. |
LinkedHashMap
및 HashMap
Map
구현 상호 작용. 그러나 그들 사이에는 몇 가지 차이점이 있습니다.
LinkedHashMap
내부적으로 이중 연결 목록을 유지 관리합니다. 이 때문에 요소의 삽입 순서를 유지합니다.LinkedHashMap
클래스에 HashMap
보다 더 많은 저장 공간이 필요합니다. . LinkedHashMap
때문입니다. 내부적으로 연결 목록을 유지합니다.LinkedHashMap
의 성능 HashMap
보다 느림 .java
자바 ArrayDeque 이 자습서에서는 예제를 통해 ArrayDeque 클래스와 해당 메서드에 대해 알아봅니다. 또한 배열 deque를 사용하여 스택을 구현하는 방법을 배웁니다. 자바에서는 ArrayDeque를 사용할 수 있습니다. 배열을 사용하여 queue 및 deque 데이터 구조를 구현하는 클래스입니다. ArrayDeque에 의해 구현된 인터페이스 ArrayDeque 클래스는 다음 두 인터페이스를 구현합니다. 자바 대기열 인터페이스 자바 데크 인터페이스 ArrayDeque 생성 배열 데크를 생성하려면 jav
자바 LinkedHashMap 이 자습서에서는 예제를 통해 Java LinkedHashMap 클래스와 해당 작업에 대해 알아봅니다. LinkedHashMap Java 컬렉션 프레임워크의 클래스는 Map 인터페이스의 해시 테이블 및 연결 목록 구현을 제공합니다. LinkedHashMap 인터페이스는 HashMap 클래스를 확장하여 해당 항목을 해시 테이블에 저장합니다. 내부적으로 모든 항목 간에 이중 연결 목록을 유지하여 항목을 정렬합니다. LinkedHashMap 만들기 연결된 해시맵을 생성하려면 java.util.Li