gpt4 book ai didi

java - 列表到 Java 8 中的 BiMap

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:08:14 26 4
gpt4 key购买 nike

我有一个输入类型:List<List<String>> .

示例输入:

[A, A1Name]
[B, B1Name]

我想把它转成BiMap

A -> A1Name
B -> B1Name

实现此目标的最佳方法是什么:

目前我在做:

final BiMap<String, String> myMap = HashBiMap.create();
lines.forEach(
(tokens) -> {
myMap.put(tokens.get(0), tokens.get(1));
}
);

最佳答案

因为BiMap实现了Map,你可以使用toMap收集器。要复制循环的行为(重复键静默覆盖值,重复值抛出异常),您可以执行以下操作:

BiMap<String,String> m = lines.stream().collect(toMap(
x->x.get(0), x->x.get(1), (a,b)->b, HashBiMap::create
));

顺便说一句,当您不确定如何将代码转换为流时,三参数 collect 提供了一种几乎逐字转换迭代代码的方法:

BiMap<String,String> m = lines.stream().collect(
HashBiMap::create,
(bm,t) -> bm.put(t.get(0), t.get(1)),
BiMap::putAll
);

关于java - 列表到 Java 8 中的 BiMap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31952709/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com