Как распространить повторяющийся элемент в Collectors.toMap () - PullRequest
0 голосов
/ 26 марта 2019

У меня есть сценарий использования, когда мне нужно перебрать список и применить функцию к каждому элементу списка и преобразовать его в карту возвращаемого значения -> повторный элемент.

List<ListObject> listObjectList = new ArrayList<>();

// рассмотрим выше список содержит объект типа ListObject

У меня есть функция с именем "someFunc", которая возвращает объект типа X.

class X {

    int id;

    public int getId(){

        return this.id;
    }
}

private X someFunc(ListObject obj) {

    ///...

    return new X();
}

Я использую следующее:

listObjectList.stream().map(p -> someFunc(p)).collect(Collectors.toMap(X::getId, p));

Когда я пытаюсь выше, кажется, что "p" не распространяется в функции сбора.Может ли кто-нибудь сказать мне, как заполнить карту следующего синтаксиса:

Map< Integer, ListObject > map;
...