Foreach循环在java for Dictionary

Dan*_*iel 11 java dictionary for-loop

我想通过java中的字典中的每个项目.为了澄清我想做什么,这是C#代码

Dictionary<string, Label> LableList = new Dictionary<string, Label>();
foreach (KeyValuePair<string, Label> z in LabelList);
Run Code Online (Sandbox Code Playgroud)

我不知道如何做到这一点是java,例如我这样做了

for(Object z: dic)
Run Code Online (Sandbox Code Playgroud)

但它说它不可迭代.请指教......

Mar*_*ers 34

我假设你有一个Map<String, Label>Java内置字典结构.Java不允许你直接迭代Map(即它没有实现Iterable),因为它实际上是迭代的是不明确的.

这只是选择迭代键,值或条目(两者)的问题.

例如

Map<String, Label> map = new HashMap<String, Label>();
//...

for ( String key : map.keySet() ) {
}

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

for ( Map.Entry<String, Label> entry : map.entrySet() ) {
    String key = entry.getKey();
    Label value = entry.getValue();
}
Run Code Online (Sandbox Code Playgroud)

您的C#代码似乎与迭代条目(最后一个示例)相同.

  • @Daniel阅读javadoc会告诉你`注意:这个类已经过时了.新的实现应该实现Map接口,而不是扩展这个类.所以你应该使用一个新的map类.您可能需要一个`HashMap` - 它还实现了迭代工作所需的新函数 (3认同)

Ara*_*ram 6

java.util.Map 是相当于字典的字典,下面是有关如何迭代每个条目的示例

for(Map.Entry<K, V> e : map.entrySet())
{
    System.out.println(e.getKey()+": "+e.getValue());
}
Run Code Online (Sandbox Code Playgroud)