Сборка элементов в Map

Нужно собрать переданный стрим чисел в мапу, где ключ сам элемент, а значение это его квадрат.

Мой код:

public class CollectToMap {
    public static Map<Integer, Integer> collect(Stream<Integer> data) {
        Map<Integer, Integer> result = Set.of(data).stream().collect(Collectors.toMap(k -> k, v -> v));

        return result;
    } 
}

Мой тест:

public class CollectToMapTest {
    @Test
    public void test() {
        List<Integer> data = List.of(2, 3);
        Map<Integer, Integer> expect = Map.of(
                2, 4,
                3, 9
        );
        Map<Integer, Integer> result = CollectToMap.collect(data.stream());
        assertEquals(expect, result);
    }
}

В чем моя ошибка?


Ответы (1 шт):

Автор решения: Danil Apsadikov

На сколько я понял, вы забыли v * v

public static Map<Integer, Integer> collect(Stream<Integer> data) {
    return data.collect(Collectors.toMap(k -> k, v -> v * v));
}
→ Ссылка