Tôi muốn dịch Danh sách các đối tượng thành Bản đồ bằng cách sử dụng các luồng và lambd của Java 8.
Đây là cách tôi sẽ viết nó trong Java 7 trở xuống.
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;
}
Tôi có thể thực hiện điều này một cách dễ dàng bằng cách sử dụng Java 8 và ổi nhưng tôi muốn biết làm thế nào để làm điều này mà không có ổi.
Ở ổi:
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();
}
});
}
Và ổi với Java 8 lambdas.
private Map<String, Choice> nameMap(List<Choice> choices) {
return Maps.uniqueIndex(choices, Choice::getName);
}
Maps.uniqueIndex(choices, Choice::getName)
.