java-stream ×6
Создан 09.01.2025
10
голоса
5
ответов
36
просмотров
Java 8: Преобразование List<V> в Map<K, V>

Я хочу преобразовать список объектов в карту, используя стримы и ламбды в Java 8.

Вот как я бы это сделал в Java 7 и ниже:

private Map nameMap(List choices) {
    final Map hashMap = new HashMap();
    for (final Choice choice : choices) {
        hashMap.put(choice.getName(), choice);
  ...
7
голоса
5
ответов
36
просмотров
Java 8: Уникальные элементы по свойству (Distinct by property)

Как в Java 8 отфильтровать коллекцию, используя API Stream, проверяя уникальность свойства каждого объекта?

У меня есть список объектов типа Person, и я хочу удалить людей с одинаковыми именами.

Используя метод:

persons.stream().distinct();

Я получаю стандартную проверку на...

7
голоса
5
ответов
33
просмотров
Найти первый элемент по предикату

Я только начал изучать лямбды в Java 8 и пытаюсь реализовать некоторые функции, с которыми я привык работать в функциональных языках.

Например, в большинстве функциональных языков есть функция find, которая работает с последовательностями или списками и возвращает первый элемент, для которого...

5
голоса
5
ответов
12
просмотров
NullPointerException в Collectors.toMap при наличии нулевых значений в записях

Вопрос: NullPointerException при использовании Collectors.toMap с null-значениями

Я столкнулся с проблемой, когда метод Collectors.toMap бросает исключение NullPointerException, если одно из значений равно null. Мне непонятно такое поведение, ведь карты могут содержать null-значения без...

5
голоса
5
ответов
16
просмотров
Есть ли краткий способ итерации по стриму с индексами в Java 8?

Заголовок: Как итерироваться по стриму с доступом к индексу в Java?

Текст проблемы:

Я пытаюсь итерироваться по массиву строк с доступом к индексу в стриме на Java, и мне нужно сделать это в краткой форме. Вот мой текущий код:

String[] names = {"Sam","Pamela", "Dave", "Pascal",...
5
голоса
4
ответов
16
просмотров
Java 8 Iterable.forEach() против цикла foreach: что выбрать?

Какой из следующих вариантов является более хорошей практикой в Java 8?

Java 8:

joins.forEach(join -> mIrc.join(mSession, join));

Java 7:

for (String join : joins) {
    mIrc.join(mSession, join);
}

У меня есть много циклов for, которые можно "упростить" с...