【发布时间】:2015-12-06 22:00:02
【问题描述】:
我有一个 for each 循环运行:
for (System system : val.keySet())
{
do something
}
有没有替代的方法来写这个?
【问题讨论】:
我有一个 for each 循环运行:
for (System system : val.keySet())
{
do something
}
有没有替代的方法来写这个?
【问题讨论】:
您可以通过以下方式循环访问map:
1- 使用 for-Each 循环:
Map<Integer, Integer> map = new HashMap<Integer, Integer>();
for (Map.Entry<Integer, Integer> entry : map.entrySet()) {
System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue());
}
2- 迭代键或值
Map<Integer, Integer> map = new HashMap<Integer, Integer>();
//iterating over keys only
for (Integer key : map.keySet()) {
System.out.println("Key = " + key);
}
//iterating over values only
for (Integer value : map.values()) {
System.out.println("Value = " + value);
}
3- 使用iterator:
Map<Integer, Integer> map = new HashMap<Integer, Integer>();
Iterator<Map.Entry<Integer, Integer>> entries = map.entrySet().iterator();
while (entries.hasNext()) {
Map.Entry<Integer, Integer> entry = entries.next();
System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue());
}
【讨论】: