일반적으로 다섯 반복하는 방법 지도 자바에서. 이 기사에서는 이들 모두에 대해 논의하고 장점과 단점도 살펴볼 것입니다.
우선, 우리는 할 수 없다 다음을 사용하여 지도를 직접 반복합니다. 반복자 , 지도가 아니기 때문입니다. 수집. 또한 더 진행하기 전에 다음 사항에 대해 조금 알아야 합니다. 지도.입장 상호 작용.
Java의 모든 맵은 구현되므로 지도 인터페이스를 사용하면 다음 기술이 모든 지도 구현( HashMap , TreeMap , LinkedHashMap , Hashtable 등)에 적용됩니다.
1. For-Each 루프를 사용하여 Map.entrySet()을 반복합니다.
Map.entrySet() 메소드는 컬렉션 뷰를 반환합니다( 세트
자바
자식 풀 구문
// Java program to demonstrate iteration over> // Map.entrySet() entries using for-each loop> > import> java.util.Map;> import> java.util.HashMap;> > class> IterationDemo> {> >public> static> void> main(String[] arg)> >{> >Map gfg =>new> HashMap();> > >// enter name/url pair> >gfg.put(>'GFG'>,>'techcodeview.com'>);> >gfg.put(>'Practice'>,>'practice .techcodeview.com>);> >gfg.put(>'Code'>,>'code .techcodeview.com>);> >gfg.put(>'Quiz'>,>'www .techcodeview.com>);> > >// using for-each loop for iteration over Map.entrySet()> >for> (Map.Entry entry : gfg.entrySet())> >System.out.println(>'Key = '> + entry.getKey() +> >', Value = '> + entry.getValue());> >}> }> |
>
>
산출:
Key = Quiz, Value = www.techcodeview.com Key = Practice, Value = practice.techcodeview.com Key = GFG, Value = techcodeview.com Key = Code, Value = code.techcodeview.com>
2. keySet() 및 value() 메서드를 사용하여 키 또는 값 반복
맵.키세트() 메소드는 이 맵에 포함된 키의 Set 뷰를 반환하고 맵.값() 메소드는 이 맵에 포함된 값의 컬렉션 뷰를 반환합니다. 따라서 맵의 키 또는 값만 필요한 경우 for-each 루프를 사용하여 keySet 또는 값을 반복할 수 있습니다. 아래는 이를 보여주는 Java 프로그램입니다.
자바
자바 색인
// Java program to demonstrate iteration over> // Map using keySet() and values() methods> > import> java.util.Map;> import> java.util.HashMap;> > class> IterationDemo> {> >public> static> void> main(String[] arg)> >{> >Map gfg =>new> HashMap();> > >// enter name/url pair> >gfg.put(>'GFG'>,>'techcodeview.com'>);> >gfg.put(>'Practice'>,>'practice .techcodeview.com>);> >gfg.put(>'Code'>,>'code .techcodeview.com>);> >gfg.put(>'Quiz'>,>'www .techcodeview.com>);> > >// using keySet() for iteration over keys> >for> (String name : gfg.keySet())> >System.out.println(>'key: '> + name);> > >// using values() for iteration over values> >for> (String url : gfg.values())> >System.out.println(>'value: '> + url);> >}> }> |
>
>
산출:
key: Quiz key: Practice key: GFG key: Code value: www.techcodeview.com value: practice.techcodeview.com value: techcodeview.com value: code.techcodeview.com>
3. 반복자를 사용하여 반복 지도.입장
이 방법은 첫 번째 방법과 다소 유사합니다. 첫 번째 방법에서는 Map.Entry를 통해 for-each 루프를 사용하지만 여기서는 반복자 . Map.Entry를 통해 반복자를 사용하면 고유한 장점이 있습니다. 호출을 통해 반복 중에 맵에서 항목을 제거할 수 있습니다. 반복자.제거() 방법.
자바
// Java program to demonstrate iteration over> // Map using keySet() and values() methods> > import> java.util.Map;> import> java.util.HashMap;> import> java.util.Iterator;> > class> IterationDemo> {> >public> static> void> main(String[] arg)> >{> >Map gfg =>new> HashMap();> > >// enter name/url pair> >gfg.put(>'GFG'>,>'techcodeview.com'>);> >gfg.put(>'Practice'>,>'practice .techcodeview.com>);> >gfg.put(>'Code'>,>'code .techcodeview.com>);> >gfg.put(>'Quiz'>,>'www .techcodeview.com>);> > >// using iterators> >Iterator itr = gfg.entrySet().iterator();> > >while>(itr.hasNext())> >{> >Map.Entry entry = itr.next();> >System.out.println(>'Key = '> + entry.getKey() +> >', Value = '> + entry.getValue());> >}> >}> }> |
로마 숫자 1-100
>
>
산출:
Key = Quiz, Value = www.techcodeview.com Key = Practice, Value = practice.techcodeview.com Key = GFG, Value = techcodeview.com Key = Code, Value = code.techcodeview.com>
4. forEach(action) 메소드 사용:
Java 8에서는 다음을 사용하여 지도를 반복할 수 있습니다. Map.forEach(작업) 방법과 사용 람다 식 . 이 기술은 깨끗하고 빠릅니다.
자바
// Java code illustrating iteration> // over map using forEach(action) method> > import> java.util.Map;> import> java.util.HashMap;> > class> IterationDemo> {> >public> static> void> main(String[] arg)> >{> >Map gfg =>new> HashMap();> > >// enter name/url pair> >gfg.put(>'GFG'>,>'techcodeview.com'>);> >gfg.put(>'Practice'>,>'practice .techcodeview.com>);> >gfg.put(>'Code'>,>'code .techcodeview.com>);> >gfg.put(>'Quiz'>,>'www .techcodeview.com>);> > >// forEach(action) method to iterate map> >gfg.forEach((k,v) ->System.out.println(>'Key = '> >+ k +>', Value = '> + v));> > >}> }> |
>
>
출력 :
Key = Quiz, Value = www.techcodeview.com Key = Practice, Value = practice.techcodeview.com Key = GFG, Value = techcodeview.com Key = Code, Value = code.techcodeview.com>
5. 키 반복 및 값 검색(비효율적)
여기서 먼저 키를 반복합니다(사용하여 맵.키세트() 방법) 그런 다음 (사용하여 값을 검색합니다. Map.get(키) 방법)을 사용합니다. 이 방법은 키로 값을 가져오는 데 시간이 많이 걸릴 수 있으므로 매우 느리고 비효율적이므로 실제로 사용되지 않습니다.
전기의 장점
자바
// Java program to demonstrate iteration> // over keys and searching for values> > import> java.util.Map;> import> java.util.HashMap;> > class> IterationDemo> {> >public> static> void> main(String[] arg)> >{> >Map gfg =>new> HashMap();> > >// enter name/url pair> >gfg.put(>'GFG'>,>'techcodeview.com'>);> >gfg.put(>'Practice'>,>'practice .techcodeview.com>);> >gfg.put(>'Code'>,>'code .techcodeview.com>);> >gfg.put(>'Quiz'>,>'www .techcodeview.com>);> > >// looping over keys> >for> (String name : gfg.keySet())> >{> >// search for value> >String url = gfg.get(name);> >System.out.println(>'Key = '> + name +>', Value = '> + url);> >}> >}> }> |
>
>
산출:
Key = Quiz, Value = www.techcodeview.com Key = Practice, Value = practice.techcodeview.com Key = GFG, Value = techcodeview.com Key = Code, Value = code.techcodeview.com>
참고자료 : 스택 오버플로