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

例如:

Bank of America, identifer-1,  123
Bank of America, identifer-2,  234
wells Forgo,     identifier-1, 123

我希望结果是像下面这样的 map
bank of America -> 123/234
wellsForgo -> 123

类(class):
public class BankIdentifier {
    private String bankId;
    private String identifierId;
    private String identifierValue;
}

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

最佳答案

这将根据 bankId 和累积的 identifierValue 将列表分组为由 / 分隔符分隔的单个字符串。

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

确保您有 bankIdidentifierValue 的 getter,以便使用方法引用语法。

10-08 13:43