Как преобразовать List <Long>в двойной [] в Java - PullRequest
3 голосов
/ 19 февраля 2020

Я пытаюсь преобразовать List<Long> в double[] в Java,

Я сделал следующим образом,

  List<Long> longList = ........;

  int len = longList.size();

  double[] doubleArray = new double[len];

  for (int i = 0; i < len; i++)
     doubleArray[i] = (double) longList.get(i);

Мне интересно если я могу сделать это более умным способом (и как) , так как я использую Java-8, я видел некоторое преобразование, используя потоковый метод. Но не смог найти ничего, что могло бы решить мою проблему.

Ответы [ 3 ]

3 голосов
/ 19 февраля 2020

Вы действительно могли бы сделать это с помощью потока:

double[] result = longList.stream()
                          .mapToDouble(Long::doubleValue)
                          .toArray();

Возможно, он немного короче и чище, но вы ничего не добьетесь в производительности.

1 голос
/ 19 февраля 2020

Просто используйте:

double[] doubleArray = longList.stream().mapToDouble(v -> v).toArray();
0 голосов
/ 19 февраля 2020

Если вы используете Java 8, попробуйте это:

list.stream().map(v -> (double)v)
    .toArray(Double[]::new);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...