logo

Java에서 Map을 반복하는 방법

Java에서는 Map에 대한 반복이 다양한 방법으로 수행될 수 있습니다. 다음을 사용하여 지도를 직접 반복할 수는 없다는 점을 기억하세요. 반복자 , Map 인터페이스는 Collection의 일부가 아니기 때문입니다. Java 구현의 모든 맵 지도 상호 작용. Java에는 다음과 같은 유형의 맵이 있습니다.

  • 해시맵
  • 트리맵
  • LinkedHashMap

지도는 컬렉션이 아니지만 여전히 컬렉션 프레임워크를 고려하세요. 따라서 맵은 컬렉션 인터페이스를 확장하지 않는 인터페이스입니다.

반복자

반복자는 컬렉션을 반복하는 데 사용되는 인터페이스입니다. Java Collections Framework의 열거형을 대신합니다. 반복자와 열거의 차이점은 다음과 같습니다.

  • Iterator는 레거시 요소와 비레거시 요소를 순회할 수 있지만 Enumeration은 레거시 요소만 순회할 수 있습니다.
  • Iterator는 빠른 실패이지만 Enumeration은 빠른 실패가 아닙니다.

컬렉션 보기

컬렉션 보기 방법을 사용하면 다음과 같은 방법으로 지도를 컬렉션으로 볼 수 있습니다.

    키세트:이는 맵에 포함된 키 세트입니다.값:이는 Map에 포함된 값의 모음입니다.항목 집합:Map의 키-값 쌍 집합입니다.

Map 인터페이스에는 다음과 같은 작은 중첩 인터페이스도 있습니다. 지도.항목 . 컬렉션 뷰는 지도를 반복하는 유일한 수단을 제공합니다.

프레임 tkinter

Iterator 인터페이스 사용

HashMap에 대한 반복의 예

선주문 순회
 public static void main(String args[]) { HashMap hm = new HashMap(); //implements map interface hm.put(110,'Ravi'); hm.put(120,'Prateek'); hm.put(130, 'Davesh'); hm.put(140, 'Kamal'); hm.put(150, 'Pawan'); Iterator it = hm.keySet().iterator(); //keyset is a method while(it.hasNext()) { int key=(int)it.next(); System.out.println('Roll no.: '+key+' name: '+hm.get(key)); } } } 

산출:

 Roll no.: 130 name: Davesh Roll no.: 150 name: Pawan Roll no.: 120 name: Prateek Roll no.: 140 name: Kamal Roll no.: 110 name: Ravi 

keyset() 및 value() 메소드 사용

키셋():키세트() 의 방법 해시맵 클래스는 맵에 포함된 키에 대한 반복에 사용됩니다. 키의 Set 뷰를 반환합니다.

통사론

 Set keyset() 

값():값() 의 방법 해시맵 클래스는 맵에 포함된 값에 대한 반복에 사용됩니다. 값의 컬렉션 뷰를 반환합니다.

통사론

 Collection values() 

 import java.util.Map; import java.util.HashMap; class IterationExample2 { public static void main(String[] arg) { Map map = new HashMap(); map.put('Gujarat', 'Gandhi Nagar'); map.put('Uttar Pradesh', 'Lucknow'); map.put('Sikkim', 'Ganagtok'); for (String State : map.keySet()) //using keyset() method for iteration over keySet System.out.println('State: ' + State); for (String Capital : map.values()) //using values() for iteration over keys System.out.println('Capiatl: ' + Capital); } } 

산출:

 State: Gujarat State: Sikkim State: Uttar Pradesh Capital: Gandhi Nagar Capital: Ganagtok Capital: Lucknow 

Map.entrymethod 사용

Map.Entry는 인터페이스입니다. 요소가 이 클래스에 속하는 맵의 컬렉션 뷰를 반환합니다.

map.entrySet() 메소드는 지도에 포함된 매핑의 Set 뷰를 반환합니다. 맵의 변경 사항은 세트에도 반영되며 그 반대의 경우도 마찬가지입니다. 또한 맵에서 해당 매핑을 제거하는 요소 제거도 지원합니다.

Verilog 사례 설명

통사론

 Set<map.entry> entrySet() </map.entry>

 import java.util.*; class IterationExample3 { public static void main(String[] arg) { Map map = new HashMap(); map.put(&apos;Cookies&apos;, 90.87f); map.put(&apos;Dry Fruits&apos;, 434.23f); map.put(&apos;Oats&apos;, 220.00f); map.put(&apos;Chocolate&apos;, 70.89f); for (Map.Entry entry : map.entrySet()) //using map.entrySet() for iteration { //returns keys and values respectively System.out.println(&apos;Item: &apos; + entry.getKey() + &apos;, Price: &apos; + entry.getValue()); } } } 

산출:

역참조 포인터
 Item: Oats, Price: 220.0 Item: Dry Fruits, Price: 434.23 Item: Cookies, Price: 90.87 Item: Chocolate, Price: 70.89 

키 반복 및 값 가져오기

다음 예에서는 먼저 키를 반복한 다음 값을 가져옵니다.

 import java.util.*; class IterationExample4 { public static void main(String[] arg) { Map map = new HashMap(); map.put(&apos;Sumit&apos;, &apos;Singh&apos;); map.put(&apos;Devesh&apos;, &apos;Mishra&apos;); map.put(&apos;Rahul&apos;, &apos;Tiwari&apos;); for (String name: map.keySet()) //iteration over keys { //returns the value to which specified key is mapped String lastname=map.get(firstname); System.out.println(&apos;Key: &apos; + name + &apos;, Value: &apos; + lastname); } } } 

산출:

파이썬에서는
 Key: Rahul, Value: Tiwari Key: Devesh, Value: Mishra Key: Sumit, Value: Singh 

forEach() 메소드 사용

그만큼 각각() 의 방법 배열목록 모든 요소가 처리될 때까지 Iterable의 각 요소에 대한 작업을 수행하는 데 사용됩니다.

통사론

 public void forEach(Consumer action) 

이 메서드는 작업(각 요소에 대해 수행할 작업)을 매개 변수로 사용합니다. 아무것도 반환하지 않습니다. 그것은 던진다 NullPointer예외 지정된 작업이 null인 경우

다음 예에서는 forEach() 메서드 내에서 람다 식을 사용하여 지도의 각 요소를 인쇄합니다.

 import java.util.Map; import java.util.HashMap; class IterationExample5 { public static void main(String[] arg) { Map map = new HashMap(); map.put(&apos;TCS&apos;, &apos;0 billion&apos;); map.put(&apos;Wipro&apos;, &apos;.5 billion&apos;); //iteration over map using forEach() method map.forEach((k,v) -&gt; System.out.println(&apos;Company: &apos;+ k + &apos;, Net worth: &apos; + v)); } } 

산출:

 Company: Wipro, Net worth: .5 billion Company: TCS, Net worth: 0 billion