我有一个由 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("/")))
);
确保您有
bankId
和 identifierValue
的 getter,以便使用方法引用语法。