2017-03-06 53 views
3

什麼是的Java 8最好的方法,從的Java 8 - 映射爲逗號分隔括號對

Map<Integer, Integer> 

得到像一個字符串:

[k1,v1],[k2,v2],[k3,v3]... 

我在看什麼像這樣,但我不知道如何「返回」或「映射」StringBuilder

map.forEach((k,v) -> s.append("[").append(k).append(",").append(v).append("]")) 
        .collect(Collectors.joining(", ")); 

無論如何,我認爲StringBuilder不適合未來平等主義的多線程。

請注意,我可以迭代Map並以舊的方式創建所有結構,但我想看看如何使用一些新的Java8功能來完成。

我認爲一些偶然的toString()已經將方括號中的地圖值返回,這可能很方便,但依靠這個方法並不是一個好主意。

回答

6
map.entrySet() 
    .stream() 
    .map(e -> "[" + e.getKey() + "," + e.getValue() + "]") 
    .collect(Collectors.joining(",")); 
+0

entrySet!謝謝。順便說一句,我不能編輯,但最後還是有'';'丟失 – user1156544