簡體   English   中英

帶字符串連接的Java 8 Collector

[英]Java 8 Collector with string concatenating

我有這個課:

class Pair {
    public String name;
    public int age;
}

並列出:

List<Pair> list = new LinkedList<>();
list.add(new Pair("One", 25));
list.add(new Pair("Two", 18));
list.add(new Pair("Three", 18));
list.add(new Pair("Four", 10));

其中Pair僅包含兩個值,即Stringint

我想按age值對這些數據進行分組,還要將name連接起來。 最后,我想獲得一個Map<Integer, String>像這樣:

25 - One
18 - TwoThree
10 - Four

我嘗試了這個:

list.stream().collect(Collectors.groupingBy(Pair::getValue, /* Collectors.??? */));

有類似summingInt方法,但找不到String值的任何東西。

我看到有一個Collectors.reducing方法,我想也許我們可以使用它,但不確定如何使用。

是否有一種優雅的方法可以在Collectors進行構建,還是我必須自己制作?

只需使用Collectors.mapping(Pair::getName, Collectors.joining()) joining處理字符串,然后mapping從對對象中提取它們。

暫無
暫無

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

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