2015-01-09 52 views

回答

4

您可以迭代键,条目或值。

for (String key : map.keySet()) { 
    String value = map.get(key); 
} 

for (String value : map.values()) { 
} 

for (Map.Entry<String,String> entry : map.entrySet()) { 
    String key = entry.getKey(); 
    String value = entry.getValue(); 
} 

这是假设你的地图有String键和String值。

+0

你甚至可以做(String temp:map.values() – 2015-01-09 19:17:46

1

你可以做

for (String key : hashmap.keySet()) { 
    String value = hashmap.get(key); 
} 
4

你不能直接环路Map一样,在Java中。

你可以,但是,循环键:

for (SomeKeyObject key : map.keySet()) 

值:

for (SomeValueObject value : map.values()) 

甚至它的条目:

for (Map.Entry<SomeKeyObject, SomeValueObject> entry : map.entrySet()) 
0
public class IterableHashMap<T,U> extends HashMap implements Iterable 
    { 

     @Override 
     public Iterator iterator() { 
      // TODO Auto-generated method stub 

      return this.keySet().iterator(); 
     } 



    } 



    public static void main(String[] args) { 

     testA a=new testA(); 
     IterableHashMap test=a.new IterableHashMap<Object,Object>(); 
     for(Object o:test) 
     { 

     } 
    } 
1

你可以做到这一点使用迭代器http://docs.oracle.com/javase/7/docs/api/java/util/Iterator.html

HashMap<String, String> yourHashMap = new HashMap<>(); 
    Iterator<Map.Entry<String, String>> it = yourHashMap.entrySet().iterator(); 
    while(it.hasNext()){ 
     it.next(); 
     System.out.println(yourHashMap.get(it)); 
    } 

乍一看它可能是很有诱惑力使用一个for循环,而不是一个Iterator,但

如果要修改的元素在你的HashMap在遍历他们,你将需要一个Iterator!

当使用一个for循环,你不能从你的地图中移除元素,同时

it.remove() 

会在上面的例子很好地工作。