Java에서는 Map에 대한 반복이 다양한 방법으로 수행될 수 있습니다. 다음을 사용하여 지도를 직접 반복할 수는 없다는 점을 기억하세요. 반복자 , Map 인터페이스는 Collection의 일부가 아니기 때문입니다. Java 구현의 모든 맵 지도 상호 작용. Java에는 다음과 같은 유형의 맵이 있습니다.
- 해시맵
- 트리맵
- LinkedHashMap
지도는 컬렉션이 아니지만 여전히 컬렉션 프레임워크를 고려하세요. 따라서 맵은 컬렉션 인터페이스를 확장하지 않는 인터페이스입니다.
반복자
반복자는 컬렉션을 반복하는 데 사용되는 인터페이스입니다. Java Collections Framework의 열거형을 대신합니다. 반복자와 열거의 차이점은 다음과 같습니다.
- Iterator는 레거시 요소와 비레거시 요소를 순회할 수 있지만 Enumeration은 레거시 요소만 순회할 수 있습니다.
- Iterator는 빠른 실패이지만 Enumeration은 빠른 실패가 아닙니다.
컬렉션 보기
컬렉션 보기 방법을 사용하면 다음과 같은 방법으로 지도를 컬렉션으로 볼 수 있습니다.
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('Cookies', 90.87f); map.put('Dry Fruits', 434.23f); map.put('Oats', 220.00f); map.put('Chocolate', 70.89f); for (Map.Entry entry : map.entrySet()) //using map.entrySet() for iteration { //returns keys and values respectively System.out.println('Item: ' + entry.getKey() + ', Price: ' + 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('Sumit', 'Singh'); map.put('Devesh', 'Mishra'); map.put('Rahul', 'Tiwari'); 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('Key: ' + name + ', Value: ' + 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('TCS', '0 billion'); map.put('Wipro', '.5 billion'); //iteration over map using forEach() method map.forEach((k,v) -> System.out.println('Company: '+ k + ', Net worth: ' + v)); } }
산출:
Company: Wipro, Net worth: .5 billion Company: TCS, Net worth: 0 billion