Карта, содержащая полномочия 2 - PullRequest
0 голосов
/ 26 октября 2018

Я создаю метод, который генерирует карту с первыми 20 степенями 2. Карта с ключом экспоненты и как значение результата.

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

private static Map<Integer, Integer> generatePowerMap(int base){
    List<Integer> list = IntStream.rangeClosed(0,20)
            .map(n -> ((Double) Math.pow(base, n)).intValue())
            .boxed()
            .collect(Collectors.toList());

    return IntStream.rangeClosed(0, 20)
            .boxed()
            .collect(Collectors.toMap(n-> n, list::get));
}

Мне интересно, как это можно сделать в oneliner, но я не могу понять это. Может ли кто-нибудь помочь мне с этим?

1 Ответ

0 голосов
/ 26 октября 2018

Ваше значение - только операция по показателю, да?

return IntStream.rangeClosed(0, 20)
        .boxed()
        .collect(Collectors.toMap(n-> n, n -> ((Double) Math.pow(base, n)).intValue()));
...