问题: Java 8 的List 转成 Map<K, V>
我想要使用Java 8的streams和lambdas转换一个 List 对象为 Map
下面是我在Java 7里面的写法
private Map<String, Choice> nameMap(List<Choice> choices) {
final Map<String, Choice> hashMap = new HashMap<>();
for (final Choice choice : choices) {
hashMap.put(choice.getName(), choice);
}
return hashMap;
}
我可以很轻松地用Java8和Guava搞定,但是呢我又不知道怎么不用Guava搞定
Guava写法:
private Map<String, Choice> nameMap(List<Choice> choices) {
return Maps.uniqueIndex(choices, new Function<Choice, String>() {
@Override
public String apply(final Choice input) {
return input.getName();
}
});
}
Guava +Java 8 lambdas写法:
private M