Хочется странного
Есть массив объектов. У каждого объекта есть уникальное поле id. Хочется преобразовать этот массив в HashMap с ключами, равными этим id
Да, я знаю как сделать такое через цикл. Но может есть какой более элегантный путь, стримы, волшебные касты и т.д. о которых я просто не знаю?
class Accident{
public int id;
....
}
Accidents[] accArray = getAccidentsByRetrofitAndGson();
Map accidents<Integer,Accident> = new HashMap();
// Вот вместо этого?
for(Accident acc:accidents){
accidents.put(acc.id, acc);
}
С помощью метода forEach из Stream можно так:
Map<Integer, Accident> accidents = new HashMap<>();
Stream.of(accArray).forEach(e -> accidents.put(e.id, e));
По аналогии с вариантом из комментария @post_zeew:
Map<Integer, Accident> accidents;
accidents = Stream.of(accArray).collect(Collectors.toMap(e -> e.id, e -> e));
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости