最佳答案
我想使用Java8的流和lambdas将对象列表转换为地图。
这就是我在7Java及以下的写作方式。
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和番石榴轻松完成此操作,但我想知道如何在没有番石榴的情况下做到这一点。
在番石榴:
private Map<String, Choice> nameMap(List<Choice> choices) {return Maps.uniqueIndex(choices, new Function<Choice, String>() {
@Overridepublic String apply(final Choice input) {return input.getName();}});}
番石榴和Java8 lambdas。
private Map<String, Choice> nameMap(List<Choice> choices) {return Maps.uniqueIndex(choices, Choice::getName);}