Есть ли способ сделать следующее с функциями Java 8 и лямбдами?
У меня есть этот класс
public class A{
private String id;
private int version;
// getters...
}
Ввод (список упорядочен по id и версиям по возрастанию):
[{"1",1},{"1",2},{"2",1},{"2",2}]
Я хочу иметь список с самыми высокими версиями каждого идентификатора, поэтому результат должен выглядеть следующим образом:
[{"1",2},{"2",2}]
У меня уже есть решение, но мне не нравится, чтомного.Я подумал, может быть, есть лучший способ с Java 8.
static List<A> removeOldVersions(List<A> aList) {
Map<String, A> map = new HashMap<>();
aList.forEach(a -> map.put(a.getId(), a));
return (List<A>) map.values();
}