簡體   English   中英

如何轉換地圖 <String,String> 使用lambda來“key1:value1,key2:value2,..”

[英]How to convert Map<String,String> to “key1:value1,key2:value2,..” using lambda

我有一個Map<String,String> ,我需要將它轉換為單個String"key1:value1,key2:value2,..."

我可以使用迭代來做到這一點。 但是我可以使用java 8的新lambda和流功能嗎? 謝謝!

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

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

BTW我不會使用String.format()如果可以避免它,因為它可能比字符串連接慢得多。

Map<String, String> map = ...;
String result = map.entrySet().stream()
    .map(e -> String.join(":", e.getKey(), e.getValue()))
    .collect(Collectors.joining(","));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM