代码之家  ›  专栏  ›  技术社区  ›  Anthony Kong

在科特林,除了地图的入口集和流的使用,还有什么可供选择的呢?

  •  0
  • Anthony Kong  · 技术社区  · 4 年前

    我已经建立了一个 HashMap

    这是我的密码:

    val map = HashMap<String, Any>();
    // Build the map
    return map.entrySet().stream()
            .map { p -> urlEncodeUTF8(p.getKey()) + "=" + urlEncodeUTF8(p.getValue()) }
            .reduce { p1, p2 -> p1.toString() + "&" + p2 }
            .orElse("")
    

    entrySet() .

    它抱怨 Cannot access 'entrySet': it is package-private in 'HashMap' .

    forEach 不是我的正确答案,因为我想用 stream 将结果缩减为单个字符串的语法。

    我试过了 createEntrySet entries 但他们都不支持流。

    1 回复  |  直到 4 年前
        1
  •  1
  •   Sergey Afinogenov    4 年前

    试试这个:

      return map.entries.stream()
            .map { "${urlEncodeUTF8(it.key)}=${urlEncodeUTF8(it.value)}" }
            .reduce { p1, p2 -> "$p1&$p2" }
            .orElse("")