Java HashMap 像 ArrayList 一样加入了增强的 for 循环
Java HashMap put in an enhanced for loop just like an ArrayList
例如,我可以像这样 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();
}
这是假设您的地图具有字符串键和字符串值。
你可以做到
for (String key : hashmap.keySet()) {
String value = hashmap.get(key);
}
你不能像 Java 那样直接循环 Map
。
但是,您可以循环按键:
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 循环而不是迭代器可能很诱人,但是
如果您想在遍历 HashMap 中的元素时修改它们,您将需要一个迭代器!
使用 for 循环时,您无法从地图中删除元素 while
it.remove()
在上面的例子中效果很好。
使用这个
map.forEach((k, v) -> System.out.printf("%s %s%n", k, v));
例如,我可以像这样 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();
}
这是假设您的地图具有字符串键和字符串值。
你可以做到
for (String key : hashmap.keySet()) {
String value = hashmap.get(key);
}
你不能像 Java 那样直接循环 Map
。
但是,您可以循环按键:
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 循环而不是迭代器可能很诱人,但是
如果您想在遍历 HashMap 中的元素时修改它们,您将需要一个迭代器!
使用 for 循环时,您无法从地图中删除元素 while
it.remove()
在上面的例子中效果很好。
使用这个
map.forEach((k, v) -> System.out.printf("%s %s%n", k, v));