例如,我可以循環的ArrayList
這樣Java的HashMap的放在一個增強的for循環,就像一個ArrayList
for (String temp : arraylist)
我可以循環使用類似的方法一個HashMap?
例如,我可以循環的ArrayList
這樣Java的HashMap的放在一個增強的for循環,就像一個ArrayList
for (String temp : arraylist)
我可以循環使用類似的方法一個HashMap?
您可以迭代鍵,條目或值。
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值。
你甚至可以做(String temp:map.values() – 2015-01-09 19:17:46
你可以做
for (String key : hashmap.keySet()) {
String value = hashmap.get(key);
}
你不能直接環路Map
一樣,在Java中。
你可以,但是,循環鍵:
for (SomeKeyObject key : map.keySet())
值:
for (SomeValueObject value : map.values())
甚至它的條目:
for (Map.Entry<SomeKeyObject, SomeValueObject> entry : map.entrySet())
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)
{
}
}
你可以做到這一點使用迭代器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()
會在上面的例子很好地工作。
你爲什麼不試試? – 2015-01-09 19:15:40
[是。](http://stackoverflow.com/questions/1066589/iterate-through-a-hashmap)。 – rgettman 2015-01-09 19:16:59