【问题标题】:Can't translate foreach from C# to Java无法将 foreach 从 C# 转换为 Java
【发布时间】:2015-08-20 12:24:26
【问题描述】:

我正在尝试翻译 Boolean Retrieval Model search engine,但无法将这段代码翻译成 Java。

C#:

foreach(KeyValuePair<string ,List<string>> p in documentCollection){}

Java:

for(Map<String, ArrayList<String>> p : documentCollection){}
            

不幸的是 Java 给了我这个错误:

for-each 不适用于应用程序类型

提前致谢!

【问题讨论】:

  • documentCollection 的定义是什么?
  • @rapharel documentCollection 应该是 java.lang.Iterable 或数组的实例
  • @JFPicard public static Map> documentCollection = new HashMap();

标签: java c# search-engine key-value code-translation


【解决方案1】:

C# 的IDictionary&lt;K,V&gt; 和Java 的Map&lt;K,V&gt; 实现集合接口的方式有所不同。在 C# 中,集合本身可以枚举键值对;在Java中,你必须调用一个方法来获取一个key-value集合,这个方法叫做entrySet()

for (Map.Entry<String,ArrayList<String>> p : documentCollection.entrySet()) {
    ...
}

请注意,在 Java 中,您迭代的是 Map.Entry&lt;K,V&gt; 对象,而不是 C# 的 KeyValuePair&lt;K,V&gt;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-11
    • 1970-01-01
    相关资源
    最近更新 更多