Java 8 Stream group by并使用分隔符连接字符串

rro*_*roy 4 java java-8

我有由bankId,IdentifierId和IdentifierValue组成的对象列表。对于每一家银行,我都有一个以上的identifierValue。我的要求是通过将基于bankId的List分组来创建一个映射,并将identifierValue连接到由/分隔的单个字符串中。

例如:

Bank of America, identifer-1,  123
Bank of America, identifer-2,  234
wells Forgo,     identifier-1, 123
Run Code Online (Sandbox Code Playgroud)

我希望结果是下面的地图

bank of America -> 123/234
wellsForgo -> 123
Run Code Online (Sandbox Code Playgroud)

类:

public class BankIdentifier {
    private String bankId;
    private String identifierId;
    private String identifierValue;
}
Run Code Online (Sandbox Code Playgroud)

我正在使用Java 8 Streams groupby,但是无法获得标识符值,由 /

Ous*_* D. 5

这将根据bankId和将列表分组identifierValue到一个由/定界符分隔的字符串中。

Map<String, String> result =
                items.stream().collect(
                        Collectors.groupingBy(BankIdentifier::getBankId,
                                Collectors.mapping(BankIdentifier::getIdentifierValue, Collectors.joining("/")))
                        );
Run Code Online (Sandbox Code Playgroud)

确保您有一个getter bankIdidentifierValue使用方法引用语法。