logo

자바 맵 인터페이스

맵에는 키를 기반으로 하는 값, 즉 키와 값 쌍이 포함됩니다. 각 키와 값 쌍을 항목이라고 합니다. 맵에는 고유 키가 포함되어 있습니다.

스크립트를 실행하는 방법

맵은 키를 기준으로 요소를 검색, 업데이트 또는 삭제해야 하는 경우 유용합니다.

Java 맵 계층

Java에는 Map을 구현하기 위한 두 가지 인터페이스(Map 및 SortedMap)와 세 가지 클래스(HashMap, LinkedHashMap 및 TreeMap)가 있습니다. Java Map의 계층 구조는 다음과 같습니다.

Java 맵 계층

맵은 중복 키를 허용하지 않지만 중복 값을 가질 수 있습니다. HashMap과 LinkedHashMap은 null 키와 값을 허용하지만 TreeMap은 null 키나 값을 허용하지 않습니다.

Map은 순회할 수 없으므로 다음을 사용하여 Set으로 변환해야 합니다. 키세트() 또는 엔트리셋() 방법.

수업설명
해시맵 HashMap은 Map의 구현이지만 순서를 유지하지 않습니다.
LinkedHashMapLinkedHashMap은 Map의 구현입니다. HashMap 클래스를 상속받습니다. 삽입 순서를 유지합니다.
트리맵 TreeMap은 Map 및 SortedMap을 구현한 것입니다. 오름차순을 유지합니다.

Map 인터페이스의 유용한 방법

방법설명
V put(객체 키, 객체 값)지도에 항목을 삽입하는 데 사용됩니다.
void putAll(지도 맵)지정된 지도를 지도에 삽입하는데 사용됩니다.
V putIfAbsent(K 키, V 값)아직 지정되지 않은 경우에만 지정된 키와 함께 지정된 값을 맵에 삽입합니다.
V 제거(객체 키)지정된 키에 대한 항목을 삭제하는 데 사용됩니다.
불리언 제거(객체 키, 객체 값)연관된 지정된 키와 함께 지정된 값을 맵에서 제거합니다.
키세트() 설정모든 키를 포함하는 Set 뷰를 반환합니다.
세트엔트리셋()모든 키와 값을 포함하는 Set 뷰를 반환합니다.
무효 클리어()지도를 재설정하는 데 사용됩니다.
V 계산(K 키, BiFunction remappingFunction)지정된 키와 현재 매핑된 값(또는 현재 매핑이 없는 경우 null)에 대한 매핑을 계산하는 데 사용됩니다.
V 계산IfAbsent(K 키, 함수 매핑함수)지정된 키가 아직 값과 연결되어 있지 않은 경우(또는 null에 매핑된 경우) 지정된 매핑 함수를 사용하여 해당 값을 계산하는 데 사용되며, null이 아닌 경우 해당 키를 이 맵에 입력합니다.
V 계산IfPresent(K 키, BiFunction remappingFunction)지정된 키의 값이 존재하고 null이 아닌 경우 키와 현재 매핑된 값이 주어지면 새 매핑을 계산하는 데 사용됩니다.
boolean containValue(객체 값)이 메서드는 해당 값과 동일한 값이 맵 내에 존재하면 true를 반환하고, 그렇지 않으면 false를 반환합니다.
boolean containKey(객체 키)이 메서드는 키와 동일한 키가 맵 내에 있으면 true를 반환하고, 그렇지 않으면 false를 반환합니다.
부울 같음(객체 o)지정된 객체를 맵과 비교하는 데 사용됩니다.
void forEach(BiConsumer 작업)모든 항목이 처리되거나 작업에서 예외가 발생할 때까지 맵의 각 항목에 대해 지정된 작업을 수행합니다.
V get(객체 키)이 메소드는 키와 연관된 값을 포함하는 객체를 반환합니다.
V getOrDefault(객체 키, V defaultValue)지정된 키가 매핑된 값을 반환하거나, 맵에 키에 대한 매핑이 포함되어 있지 않은 경우 defaultValue를 반환합니다.
정수 해시코드()지도의 해시 코드 값을 반환합니다.
부울 isEmpty()이 메서드는 지도가 비어 있으면 true를 반환합니다. 하나 이상의 키가 포함되어 있으면 false를 반환합니다.
V 병합(K 키, V 값, BiFunction remappingFunction)지정된 키가 아직 값과 연결되어 있지 않거나 null과 연결된 경우 해당 키를 지정된 null이 아닌 값과 연결합니다.
V 대체(K 키, V 값)지정된 키에 대해 지정된 값을 대체합니다.
부울 교체(K 키, V oldValue, V newValue)지정된 키의 이전 값을 새 값으로 바꿉니다.
void replacementAll(BiFunction 함수)모든 항목이 처리되거나 함수에서 예외가 발생할 때까지 각 항목의 값을 해당 항목에 대해 지정된 함수를 호출한 결과로 바꿉니다.
컬렉션 값()맵에 포함된 값의 컬렉션 뷰를 반환합니다.
정수 크기()이 메소드는 지도의 항목 수를 반환합니다.

지도.입력 인터페이스

Entry는 Map의 하위 인터페이스입니다. 따라서 Map.Entry 이름으로 액세스합니다. 요소가 이 클래스에 속하는 맵의 컬렉션 뷰를 반환합니다. 키와 값을 가져오는 방법을 제공합니다.

Map.Entry 인터페이스의 메소드

방법설명
K getKey()열쇠를 획득하는데 사용됩니다.
V getValue()가치를 얻기 위해 사용됩니다.
정수 해시코드()hashCode를 얻는 데 사용됩니다.
V setValue(V 값)이 항목에 해당하는 값을 지정된 값으로 바꾸는 데 사용됩니다.
부울 같음(객체 o)지정된 개체를 기존의 다른 개체와 비교하는 데 사용됩니다.
공전비교기비교별키()키에 따라 객체를 자연 순서로 비교하는 비교기를 반환합니다.
정적 비교기비교ByKey(비교기 cmp)주어진 Comparator를 사용하여 키별로 객체를 비교하는 비교기를 반환합니다.
공전비교기비교값()값에 따라 객체를 자연 순서로 비교하는 비교기를 반환합니다.
정적 비교기비교ByValue(비교기 cmp)주어진 Comparator를 사용하여 객체를 값으로 비교하는 비교기를 반환합니다.

Java 맵 예: 비일반(이전 스타일)

 //Non-generic import java.util.*; public class MapExample1 { public static void main(String[] args) { Map map=new HashMap(); //Adding elements to map map.put(1,'Amit'); map.put(5,'Rahul'); map.put(2,'Jai'); map.put(6,'Amit'); //Traversing Map Set set=map.entrySet();//Converting to Set so that we can traverse Iterator itr=set.iterator(); while(itr.hasNext()){ //Converting to Map.Entry so that we can get key and value separately Map.Entry entry=(Map.Entry)itr.next(); System.out.println(entry.getKey()+' '+entry.getValue()); } } } 

산출:

 1 Amit 2 Jai 5 Rahul 6 Amit 

Java 맵 예: 일반(새 스타일)

 import java.util.*; class MapExample2{ public static void main(String args[]){ Map map=new HashMap(); map.put(100,'Amit'); map.put(101,'Vijay'); map.put(102,'Rahul'); //Elements can traverse in any order for(Map.Entry m:map.entrySet()){ System.out.println(m.getKey()+' '+m.getValue()); } } } 

산출:

 102 Rahul 100 Amit 101 Vijay 

Java 맵 예제: CompareByKey()

 import java.util.*; class MapExample3{ public static void main(String args[]){ Map map=new HashMap(); map.put(100,'Amit'); map.put(101,'Vijay'); map.put(102,'Rahul'); //Returns a Set view of the mappings contained in this map map.entrySet() //Returns a sequential Stream with this collection as its source .stream() //Sorted according to the provided Comparator .sorted(Map.Entry.comparingByKey()) //Performs an action for each element of this stream .forEach(System.out::println); } } 

산출:

 100=Amit 101=Vijay 102=Rahul 

Java 맵 예: 내림차순 비교ByKey()

 import java.util.*; class MapExample4{ public static void main(String args[]){ Map map=new HashMap(); map.put(100,'Amit'); map.put(101,'Vijay'); map.put(102,'Rahul'); //Returns a Set view of the mappings contained in this map map.entrySet() //Returns a sequential Stream with this collection as its source .stream() //Sorted according to the provided Comparator .sorted(Map.Entry.comparingByKey(Comparator.reverseOrder())) //Performs an action for each element of this stream .forEach(System.out::println); } } 

산출:

 102=Rahul 101=Vijay 100=Amit 

Java 맵 예제: CompareByValue()

 import java.util.*; class MapExample5{ public static void main(String args[]){ Map map=new HashMap(); map.put(100,'Amit'); map.put(101,'Vijay'); map.put(102,'Rahul'); //Returns a Set view of the mappings contained in this map map.entrySet() //Returns a sequential Stream with this collection as its source .stream() //Sorted according to the provided Comparator .sorted(Map.Entry.comparingByValue()) //Performs an action for each element of this stream .forEach(System.out::println); } } 

산출:

향상된 for 루프 자바
 100=Amit 102=Rahul 101=Vijay 

Java 맵 예: 내림차순 비교ByValue()

 import java.util.*; class MapExample6{ public static void main(String args[]){ Map map=new HashMap(); map.put(100,'Amit'); map.put(101,'Vijay'); map.put(102,'Rahul'); //Returns a Set view of the mappings contained in this map map.entrySet() //Returns a sequential Stream with this collection as its source .stream() //Sorted according to the provided Comparator .sorted(Map.Entry.comparingByValue(Comparator.reverseOrder())) //Performs an action for each element of this stream .forEach(System.out::println); } } 

산출:

 101=Vijay 102=Rahul 100=Amit