【问题标题】:How to convert Map<String,String> to "key1:value1,key2:value2,.." using lambda如何使用 lambda 将 Map<String,String> 转换为“key1:value1,key2:value2,..”
【发布时间】:2014-07-14 19:43:25
【问题描述】:

我有一个Map&lt;String,String&gt;,我需要将其转换为单个String"key1:value1,key2:value2,..."

我可以使用迭代来做到这一点。但是我可以使用 java 8 的新 lambda 和流功能来做到这一点吗?谢谢!

【问题讨论】:

  • @Anonymous downvoters:如果你能解释下投票,那将是很好的和有帮助的。谢谢!
  • 我猜反对票是因为你没有表现出任何尝试使用流来做到这一点。

标签: java map lambda java-8


【解决方案1】:

您可以使用地图和加入收集器

Map<String,String> map = new LinkedHashMap<>();
map.put("key1", "value1");
map.put("key2", "value2");
map.put("key3", "value3");
String text = map.entrySet().stream()
                 .map(e -> e.getKey() + ":" + e.getValue())
                 .collect(Collectors.joining(","));
System.out.println(text);

打印

key1:value1,key2:value2,key3:value3

顺便说一句,如果可以避免的话,我不会使用 String.format(),因为它可能比字符串连接慢得多。

【讨论】:

    【解决方案2】:
    Map<String, String> map = ...;
    String result = map.entrySet().stream()
        .map(e -> String.join(":", e.getKey(), e.getValue()))
        .collect(Collectors.joining(","));
    

    【讨论】:

      猜你喜欢
      • 2023-04-05
      • 1970-01-01
      • 1970-01-01
      • 2015-11-22
      • 1970-01-01
      • 2019-01-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多