맵 인터페이스를 구현하는 가장 일반적인 클래스는 Java HashMap입니다. HashMap은 맵 인터페이스의 해시 테이블 기반 구현입니다. null 키와 값을 허용합니다. 또한 이 클래스는 해당 요소 중 순서를 유지하지 않으며 특히 시간이 지남에 따라 순서가 일정하게 유지된다는 것을 보장하지 않습니다. 마지막으로 HashMap에는 초기 용량과 성능이라는 두 가지 기본 매개 변수가 포함되어 있습니다. 용량은 해시 테이블의 버킷 수로 정의되며, 로드 계수는 해시 테이블이 자동으로 증가하기 전에 도달할 수 있는 최대 값을 나타내는 측정값입니다. 이 페이지의 나머지 부분에서는 맵 인터페이스에 대해 자세히 설명합니다. 하지만 먼저 JDK 8 집계 작업을 사용하여 맵에 수집하는 몇 가지 예가 있습니다. 실제 개체 를 모델링하는 것은 개체 지향 프로그래밍에서 일반적인 작업이므로 일부 프로그램은 예를 들어 부서별로 그룹 직원을 생각할 수 있습니다. 맵 오브젝트를 가지고 새 맵을 초기화하여 지정된 맵에 있는 모든 키-값 매핑을 포함합니다. 이 표준 Map 변환 생성자는 표준 컬렉션 생성자와 완전히 유사합니다: 호출자가 다른 맵의 맵에 관계없이 처음에 다른 맵의 모든 매핑을 포함하는 원하는 구현 유형의 맵을 만들 수 있습니다. 구현 유형입니다. 예를 들어 m이라는 맵이 있다고 가정합니다.
다음 한 줄짜리 라이너는 처음에 m과 동일한 키-값 매핑을 모두 포함하는 새 HashMap을 만듭니다. 컬렉션 뷰는 맵을 반복할 수 있는 유일한 방법을 제공합니다. 이 예제에서는 각 구문이 있는 맵의 키를 반복하기 위한 표준 관용구, 즉 이 인터페이스에 포함된 “파괴적인” 메서드, 즉 맵을 수정하는 메서드가 throw되도록 지정됨을 보여 줍니다. 이 맵이 작업을 지원하지 않는 경우 지원되지 않는OperationException입니다. 이 경우 호출이 맵에 영향을 주지 않는 경우 이러한 메서드는 지원되지 않음OperationException을 throw할 수 있지만 필요하지는 않습니다. 예를 들어 수정할 수 없는 맵에서 putAll(Map) 메서드를 호출하면 매핑이 “중첩”될 맵이 비어 있는 경우 예외를 throw할 수 있지만 필요하지는 않습니다. anagram 그룹을 찾는 표준 트릭이 있습니다 : 사전의 각 단어에 대해 단어의 문자를 알파벳 순으로 알파벳 순으로 정렬하고 알파벳 순으로 단어를 입력하여 알파벳 단어를 원래 단어에 매핑합니다. .
예를 들어 Bad라는 단어로 인해 항목 매핑 abd가 불량으로 인해 다중 맵에 넣을 수 있습니다. 순간의 반사는 주어진 키맵이 아나그램 그룹을 형성하는 모든 단어를 보여줍니다. 크기 제약 조건을 충족하는 각 anagram 그룹을 인쇄하여 멀티맵의 키를 반복하는 것은 간단한 문제입니다. 다음은 HashMap 클래스에서 사용할 수 있는 메서드 목록입니다. 나는 또한이 게시물의 끝에 이러한 방법을 사용 하 여 예제를 커버. Java Map 인터페이스를 구현하는 많은 클래스가 있습니다. 이 장에서는 가장 일반적이고 사용되는 것을 소개합니다. 멀티맵은 맵과 비슷하지만 각 키를 여러 값에 매핑할 수 있습니다. Java 컬렉션 프레임워크는 일반적으로 사용되지 않기 때문에 멀티맵에 대한 인터페이스를 포함하지 않습니다.
값이 목록 인스턴스인 맵을 멀티맵으로 사용하는 것은 매우 간단한 문제입니다. 이 기술은 다음 코드 예제에서 보여 주며, 줄당 한 단어(모든 소문자)가 포함된 단어 목록을 읽고 크기 기준을 충족하는 모든 anagram 그룹을 인쇄합니다. anagram 그룹은 단어의 무리, 모두 정확 하 게 동일한 문자를 포함 하지만 다른 순서로.