logo

Java에서 HashMap을 반복하는 방법은 무엇입니까?

HashMap은 데이터를 (키, 값) 쌍에 저장하여 다른 유형의 인덱스로 액세스함으로써 Java의 Map 인터페이스의 기본 구현을 제공하는 Java 컬렉션의 일부입니다. 한 개체는 다른 개체(값)에 대한 키(인덱스)로 나열됩니다. 중복 키를 삽입하려고 하면 해당 키의 요소가 대체됩니다. 이 클래스와 해당 메서드를 사용하려면 다음을 가져와야 합니다. java.util.HashMap 패키지 또는 해당 슈퍼클래스.

HashMap을 반복하는 방법에는 여러 가지가 있으며 그 중 5가지가 아래에 나열되어 있습니다.

  1. HashMap을 통해 반복 EntrySet 반복자를 사용합니다.
  2. HashMap을 통해 반복 키세트 반복자를 사용합니다.
  3. 다음을 사용하여 HashMap을 반복합니다. for-each 루프 .
  4. 람다 표현식을 사용하여 HashMap을 반복합니다.
  5. 다음을 사용하여 HashMap을 반복합니다. 스트림 API .

방법 1: for 루프를 사용하여 HashMap을 반복합니다. for 루프를 통해 HashMap을 반복하여 사용 getValue() 그리고 getKey() 기능.



구현: 아래 주어진 코드에서, 엔트리셋() 매핑된 요소의 집합 보기를 반환하는 데 사용됩니다. 아래에 제공된 코드에서 :

  • set.getValue()는 세트에서 값을 가져옵니다.
  • set.getKey()는 세트에서 키를 가져옵니다.

자바




// Java Program to Iterate over HashMap> // Importing Map and HashMap classes> // from package names java.util> import> java.util.HashMap;> import> java.util.Map;> // Class for iterating HashMap using for loop> public> class> GFG {> >// Main driver method> >public> static> void> main(String[] args)> >{> >// Creating a HashMap> >Map foodTable> >=>new> HashMap();> >// Inserting elements to the adobe HashMap> >// Elements- Key value pairs using put() method> >foodTable.put(>'A'>,>'Angular'>);> >foodTable.put(>'J'>,>'Java'>);> >foodTable.put(>'P'>,>'Python'>);> >foodTable.put(>'H'>,>'Hibernate'>);> >// Iterating HashMap through for loop> >for> (Map.Entry set :> >foodTable.entrySet()) {> >// Printing all elements of a Map> >System.out.println(set.getKey() +>' = '> >+ set.getValue());> >}> >}> }>

>

>

산출

P = Python A = Angular H = Hibernate J = Java>

방법 2: forEach를 사용하여 HashMap을 반복합니다. 두 번째 방법에서는 forEach 함수를 사용하여 키-값 쌍을 반복합니다.

자바




// Java Program to Iterate over HashMap> // Iterating HashMap using forEach> // Importing Map and HashMap classes> // from package names java.util> import> java.util.HashMap;> import> java.util.Map;> public> class> GFG {> >// Main driver method> >public> static> void> main(String[] args)> >{> >// Creating hash map> >Map charType> >=>new> HashMap();> >// Inserting data in the hash map.> >charType.put(>'J'>,>'Java'>);> >charType.put(>'H'>,>'Hibernate'>);> >charType.put(>'P'>,>'Python'>);> >charType.put(>'A'>,>'Angular'>);> >// Iterating HashMap through forEach and> >// Printing all. elements in a Map> >charType.forEach(> >(key, value)> >->System.out.println(키 +>' = '> + value));> >}> }>

>

>

산출

P = Python A = Angular H = Hibernate J = Java>

방법 3: 반복자를 사용하여 HashMap을 반복합니다. 이 방법에서는 아래 Java 프로그램과 같이 HashMap에서 매핑된 각 쌍을 반복하는 데 반복자가 사용됩니다.

예:

자바




// Java Program to Iterate over HashMap> // Using Iterator> // Importing classes from java.util package> import> java.util.HashMap;> import> java.util.Iterator;> import> java.util.Map;> import> java.util.Map.Entry;> public> class> GFG {> >// Main driver method> >public> static> void> main(String[] arguments)> >{> >// Creating Hash map> >Map intType> >=>new> HashMap();> >// Inserting data(Key-value pairs) in hashmap> >intType.put(>1>,>'First'>);> >intType.put(>2>,>'Second'>);> >intType.put(>3>,>'Third'>);> >intType.put(>4>,>'Fourth'>);> >// Iterator> >Iterator new_Iterator> >= intType.entrySet().iterator();> >// Iterating every set of entry in the HashMap> >while> (new_Iterator.hasNext()) {> >Map.Entry new_Map> >= (Map.Entry)> >new_Iterator.next();> >// Displaying HashMap> >System.out.println(new_Map.getKey() +>' = '> >+ new_Map.getValue());> >}> >}> }>

>

>


산출

1 = First 2 = Second 3 = Third 4 = Fourth>

방법 4: 람다 표현식을 사용하여 HashMap 반복

비교 가능한 목록

람다 식은 매개 변수를 가져와 값을 반환하는 짧은 코드 블록입니다. 람다 식은 메서드와 유사하지만 이름이 필요하지 않으며 메서드 본문에서 바로 구현할 수 있습니다. 가장 간단한 람다 표현식에는 단일 매개변수와 표현식이 포함됩니다.

parameter ->표현>

예:

자바




// Iterating HashMap using Lambda Expressions- forEach()> // Importing Map and HashMap classes> // from java.util package> import> java.util.HashMap;> import> java.util.Map;> // Class> public> class> GFG {> >// Main driver method> >public> static> void> main(String[] args)> >{> >// Creating hash map> >Map charType> >=>new> HashMap();> >// Inserting elements(key-value pairs)> >// in the hash map ( Custom inputs)> >charType.put(>'A'>,>'Apple'>);> >charType.put(>'B'>,>'Basketball'>);> >charType.put(>'C'>,>'Cat'>);> >charType.put(>'D'>,>'Dog'>);> >// Iterating through forEach and> >// printing the elements> >charType.forEach(> >(key, value)> >->System.out.println(키 +>' = '> + value));> >}> }>

>

>

산출

A = Apple B = Basketball C = Cat D = Dog>

방법 5: Stream API를 사용하여 HashMap을 통해 루프

아래 예제는 스트림 API의 도움으로 HashMap을 반복합니다.

스트림 API는 개체 컬렉션을 처리하는 데 사용됩니다.

스트림은 원래 데이터 구조를 변경하지 않고 파이프라인 방식에 따라 결과만 제공합니다.

단계:

  • 첫 번째 호출 EntrySet().stream() Stream 객체를 반환하는 메서드입니다.
  • 다음 forEach 메소드 , 이는 EntrySet()에 있는 입력 객체를 반복합니다. 아래 코드를 참조하세요.

예:

자바




// Java Program to Iterate over HashMap> // Loop through a HashMap using Stream API> // Importing classes from> // package named 'java.util'> import> java.util.HashMap;> import> java.util.Iterator;> import> java.util.Map;> import> java.util.Map.Entry;> // HashMap class> public> class> GFG {> >// Main driver method> >public> static> void> main(String[] arguments)> >{> >// Creating hash map> >Map intType> >=>new> HashMap();> >// Inserting data(key-value pairs) in HashMap> >// Custom inputs> >intType.put(>1>,>'First'>);> >intType.put(>2>,>'Second'>);> >intType.put(>3>,>'Third'>);> >intType.put(>4>,>'Fourth'>);> >// Iterating every set of entry in the HashMap, and> >// printing all elements of it> >intType.entrySet().stream().forEach(> >input> >->System.out.println(input.getKey() +>' : '> >+ input.getValue()));> >}> }>

>

>

산출

1 : First 2 : Second 3 : Third 4 : Fourth>