Преобразование List в Map

285
06 февраля 2020, 07:40

Есть такой класс

class MyClass {
    ............
    int getKey();
    ..........
}

Есть список этих объектов

List<MyClass> myList;

нужно объекты этого списка поместить в

Map<Integer, MyClass> myMap;

Есть что нибудь эффективней кроме

for (MyClass obj : myList)
    myMap.put(obj.getKey(), obj);

Также рассматривается вариант с наследованием от HashMap/TreeMap

Answer 1

Попробуйте через java8 Stream-API

myList
.stream() //parallelStream()
.collect(Collectors.toMap(MyClass::getKey,Function.identity()))

Только учтите, что при таком подходе если будет дубликат ключей - то будет брошена ошибка IllegalStateException.

READ ALSO
Не выводит ошибку 404 страница не найдена

Не выводит ошибку 404 страница не найдена

Я хочу в своем проекте вывести ошибку 404 страница не найдена, в том случае если неправильный адрес будетЯ написал код но он не работает

263
Unable to start activity ComponentInfo{com.example.test03datetime/com.example.test03datetime.MainActivity}: java.lang.NullPointerException [закрыт]

Unable to start activity ComponentInfo{com.example.test03datetime/com.example.test03datetime.MainActivity}: java.lang.NullPointerException [закрыт]

Хотите улучшить этот вопрос? Переформулируйте вопрос, чтобы он соответствовал тематике «Stack Overflow на русском»

303
Добавление новой строки в таблицу

Добавление новой строки в таблицу

Подскажите, пожалуйста, как реализовать цикл проверки добавления поверх основных полей? есть 6 вкладок добавления1я вкладка обязательных...

266
из Java не видно наследование в файле в Kotlin

из Java не видно наследование в файле в Kotlin

Есть такой метод который сидит в Java классе

235