【发布时间】:2015-08-11 22:00:12
【问题描述】:
我有一个输入类型: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));
}
);
【问题讨论】:
-
我看不出你有什么问题。
-
我在想,如果有什么方法可以利用 stream.map() 或 stream.collect()
-
BiMap 没有标准的收集器,因为它不是标准的 Java 类,而且 Guava 还没有针对 Java 8。您可以编写自己的收集器,但是当这 3 行代码完成这项工作时,何必费心呢?
-
有很多 ad hoc libraries 为 Guava 提供 Java 8 收集器作为桥梁,直到得到官方支持。
标签: java lambda java-8 guava collectors