2015-01-09 48 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() 

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