linkedhashmap java linkedhashmap example implementation
이 튜토리얼은 LinkedHashMap 예제 및 방법, Java의 구현, LinkedHashMap 대 HashMap을 포함하여 Java의 LinkedHashMap에 대한 모든 것을 설명합니다.
Java의 LinkedHashMap은 HashTable과 LinkedList 구현을 결합한 구현입니다. Map 인터페이스를 구현합니다. LinkedHashMap의 키-값 쌍에는 예측 가능한 반복 순서가 있습니다.
Map 인터페이스 외에도 LinkedHashMap은 HashMap 클래스를 확장합니다.
=> 모두를위한 Java 교육 시리즈를 보려면 여기를 방문하십시오.
응용 프로그램의 모든 프로그램이 제대로 작동하는지 확인하는 데 사용되는 테스트 유형은 무엇입니까?
학습 내용 :
Java의 LinkedHashMap
LinkedHashMap의 몇 가지 주요 특징은 다음과 같습니다.
- 키 기반 값을 포함합니다.
- 키-값 쌍 삽입 순서를 유지합니다.
- 중복을 허용하지 않으며 고유 한 요소가 있습니다.
- 단일 널 키를 가질 수 있습니다. 그러나 여러 null 값을 허용합니다.
- Java LinkedHashMap이 동기화되지 않았습니다.
LinkedHashMap 선언
Java의 LinkedHashMap 클래스는 java.util 패키지의 일부입니다.
Java에서이 클래스의 일반적인 선언은 다음과 같습니다.
public class LinkedHashMap extends HashMap implements Map
여기서 K => 맵의 키 유형입니다.
V => 키에 매핑 된 값 유형.
LinkedHashMap의 클래스 계층은 다음과 같습니다.
위 다이어그램과 같이 LinkedHashMap은 HashMap 및 AbstractMap 클래스를 상속하고 Map 인터페이스를 구현합니다.
LinkedHashMap 예제
다음은 간단한 예입니다.
import java.util.*; class Main{ public static void main(String args()){ //declare and initialize LinkedHashMap LinkedHashMap num_map=new LinkedHashMap(); num_map.put(1,'ONE'); num_map.put(2,'TWO'); num_map.put(3,'THREE'); num_map.put(4,'FOUR'); num_map.put(5,'FIVE'); System.out.println('The contents of LinkedHashMap:'); //retrieve the key-value pairs as set using entrySet & print each entry for(Map.Entry m:num_map.entrySet()){ System.out.println(m.getKey()+' '+m.getValue()); } } }
산출:
LinkedHashMap의 내용 :
1 개
2 2
3 셋
4 4
5 다섯
apk 파일을 여는 방법
생성자 및 방법
LinkedHashMap 클래스에서 제공하는 생성자와 메서드를 살펴 보겠습니다. 먼저 생성자 다음에 메서드를 설명합니다.
생성자
생성자 프로토 타입 | 기술 | |
---|---|---|
keySet | keySet 설정 () | 맵의 키 세트를 반환합니다. |
LinkedHashMap () | LinkedHashMap의 기본 생성자입니다. | |
LinkedHashMap (int 용량) | 주어진 용량으로 LinkedHashMap 객체를 생성합니다. | |
LinkedHashMap (int 용량, float loadFactor) | 주어진 용량과 loadFactor로 LinkedHashMap 객체를 생성합니다. | |
LinkedHashMap (int capacity, float loadFactor, boolean accessOrder) | 지정된 용량 및 loadFactor를 사용하여 LinkedHashMap 개체를 만듭니다. 또한 주문 모드 (accessOrder)가 지정됩니다. | |
LinkedHashMap (맵 m) | LinkedHashMap 객체를 생성하고 인수로 전달 된 맵의 값으로 초기화합니다. |
행동 양식
방법 | 방법 프로토 타입 | 기술 |
---|---|---|
가져 오기 | V get (객체 키) | 주어진 키의 값을 반환합니다. |
맑은 | 무효 클리어 () | 맵에서 모든 키-값 쌍을 지 웁니다. |
containsValue | 부울 containsValue (객체 값) | 맵에 주어진 값에 매핑 된 하나 이상의 키가 포함되어 있는지 확인합니다. 그렇다면 true를 반환합니다. |
entrySet | 세트 | 맵의 항목 집합을 반환합니다. |
각각 | void forEach (BiConsumer 작업) | 맵의 모든 항목에 대해 지정된 작업을 실행합니다. |
getOrDefault | V getOrDefault (객체 키, V defaultValue) | 키에 매핑 된 값을 반환합니다. 매핑 된 값이 없으면 기본값이 반환됩니다. |
removeEldestEntry | 보호 된 부울 removeEldestEntry (Map.Entry eldest) | 지도에서 가장 오래된 항목을 제거하고 제거시 true를 반환합니다. |
전부 교체 | void replaceAll (BiFunction 함수) | 각 항목에 대해 지정된 함수를 호출하고 함수의 결과를 값으로 바꿉니다. |
가치 | 컬렉션 값 () | 지도의 값 모음을 반환합니다. |
자바 구현
아래의 Java 프로그램은 위에서 설명한 메소드를 보여줌으로써 LinkedHashMap의 구현을 보여줍니다.
import java.util.*; public class Main { public static void main(String a()) { //declare LinkedHashMap and initialize it with values LinkedHashMap colors_map = new LinkedHashMap(); colors_map.put('one', 'Red'); colors_map.put('two', 'Green'); colors_map.put('three', 'Blue'); // Original LinkedHashMap System.out.println('Original LinkedHashMap:' + colors_map); //isEmpty () System.out.println('LinkedHashMap 'colors_map' empty?:' + colors_map.isEmpty()); //size () System.out.println('Size of the map: ' + colors_map.size()); //get () System.out.println('Value for key = 'one':' + colors_map.get('one')); //containsKey () System.out.println('colors_map contains key = 'two':'+ colors_map.containsKey('two')); //containsValue () System.out.println('colors_map contains value 'ree':' + colors_map.containsValue('ree')); //remove () System.out.println('delete element 'one': ' + colors_map.remove('one')); System.out.println('Updated colors_map:' + colors_map); } }
산출:
원본 LinkedHashMap : {one = Red, two = Green, three = Blue}
LinkedHashMap‘colors_map’비어 있음? : false
지도의 크기 : 3
키 값 =‘one’: 빨간색
colors_map 포함 키 =‘two’: true
colors_map에는 'ree': false 값이 있습니다.
'one'요소 삭제 : 빨간색
업데이트 된 colors_map : {two = Green, three = Blue}
이 프로그램에서는 컬러 맵을 선언하고 초기화합니다. 그런 다음 위에서 설명한 다양한 방법을 사용하여 결과를 얻습니다.
LinkedHashMap 대 HashMap
LinkedHashMap | HashMap | ||
---|---|---|---|
기본 작업의 시간 복잡성 | O (1) | O (1) | O (1) |
정렬 된지도를 구현합니다. | 순서없는지도를 구현합니다. | ||
이중 연결된 버킷 목록을 사용합니다. | 해시 테이블을 사용합니다. | ||
요소를 반복 할 때 순서를 유지합니다. | 반복 할 때 순서를 유지하지 않습니다. | ||
더 많은 메모리가 필요합니다. | LinkedHashMap보다 적은 메모리가 필요합니다. | ||
추가, 제거, 검색 등과 같은 기본 작업이 느립니다. | 검색 추가, 제거와 같은 기본 작업이 더 빠릅니다. |
HashMap 대 TreeMap 대 LinkedHashMap
이제 세 가지지도 구현을 비교해 보겠습니다. HashMap, TreeMap 및 LinkedHashMap.
다음 표는 비교 / 차이를 보여줍니다.
비교 매개 변수 | HashMap | LinkedHashMap | TreeMap |
---|---|---|---|
상호 작용 | 지도 | 지도 | 지도, SortedMap, NavigableMap |
데이터 구조 | 버킷 목록 | 이중 연결 버킷 목록 | 레드-블랙 트리 |
반복 순서 | 주문이 유지되지 않습니다. | 게재 신청서에 따라 정렬 됨 | 요소의 자연스러운 순서에 따라 정렬 |
Null 키 | 허용됩니다 | 허용됩니다 | 허용되지 않음 |
동기화 | 동기화되지 않음 | 동기화되지 않음 | 동기화되지 않음 |
키 요구 사항 | equals () 및 hashCode () 메서드를 덮어 써야합니다. | equals () 및 hashCode () 메서드를 덮어 써야합니다. | 자연스러운 순서가 유지되거나 비교기가 제공되어야합니다. |
자주 묻는 질문
Q # 1) Java에서 LinkedHashMap은 무엇입니까?
대답: Java의 LinkedHashMap은 HashTable과 LinkedList의 조합으로 구현됩니다. 지도 인터페이스를 구현합니다. 예측 가능한 반복 순서가 있습니다. 항목에 대해 내부적으로 이중 연결 목록을 사용합니다.
질문 # 2)LinkedHashMap은 Java에서 어떻게 작동합니까?
오늘 C ++는 어디에 사용됩니까?
대답: HashMap과 유사하지만 LinkedHashMap이 유지하는 삽입 순서가 HashMap과 다릅니다. LinkedHashMap의 요소는 데이터 구조에 입력 된 것과 동일한 방식으로 저장됩니다.
질문 # 3)LinkedHashMap을 어떻게 반복합니까?
대답: 반복자를 사용하여 LinkedHashMap을 반복 할 수 있습니다.
다음은 반복기를 사용하여 LinkedHashMap을 반복하기 위해 수행 할 수있는 단계입니다.
- 새 LinkedHashMap 객체를 만듭니다.
- Put API 메서드를 사용하여 맵에 키-값 쌍을 삽입합니다.
- entrySet () API 메서드를 호출하여지도에서 키-값 쌍 집합을 가져옵니다.
- 이 세트에서 반복기를 호출하여 getKey () 및 getValue () API 메소드를 사용하여 각 키-값 쌍을 검색하십시오.
질문 # 4)Java에서 LinkedHashMap을 사용하는 것은 무엇입니까?
대답: Java에서 LinkedHashMap의 주요 용도는 삽입 순서를 유지하는 데 사용하는 것입니다. 또한 키에 액세스하는 데 사용되는 액세스 순서를 보존하는 데 사용할 수도 있습니다. HashMap보다 빠르기 때문에 성능이 중요한 HashMap 대신 LinkedHashMap을 사용할 수 있습니다.
질문 # 5)HashMap이 LinkedHashMap보다 빠릅니까?
대답: 둘 다 성능이 비슷합니다. HashMap은 액세스 순서를 유지하지 않으므로 LinkedHashMap과 비교할 때 HashMap은 더 적은 메모리를 필요로합니다. 따라서 비교적 HashMap이 더 빠릅니다.
결론
이 튜토리얼에서는 Java의 LinkedHashMap에 대해 논의했습니다. 클래스 선언, 클래스 계층 구조, 생성자 및 메서드에 대한 세부 정보를 살펴 보았습니다.
또한 LinkedHashMap과 HashMap의 주요 차이점을 배웠습니다. LinkedHashMap, HashMap 및 TreeMap의 3 가지 차이점에 대해서도 논의했습니다.
다음 튜토리얼에서는 Java Collection Framework에 대한 더 많은 주제를 살펴볼 것입니다.