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