Как преобразовать String Array в int Array с помощью потоков - PullRequest
0 голосов
/ 16 января 2019

Я делаю простой класс, который принимает массив строк и возвращает массив целых чисел с длиной каждой строки в них. Я пытаюсь использовать Java 8 Stream API для этого.

public int[] findMostSimilar(String[] words) {

    return Arrays.stream(words).map(n -> n.length()).toArray();

}

Но в самом потоке появляется ошибка, указывающая

несовместимые типы, обязательно: int [], найдено: java.lang.Object [].

Есть идеи, как добиться того, чего я хочу?

Ответы [ 2 ]

0 голосов
/ 16 января 2019

Это должно работать.

int[] ints = Arrays.stream(words).mapToInt(String::length).toArray();
0 голосов
/ 16 января 2019

Сначала давайте посмотрим, почему ваша попытка не сработала:

Arrays.stream(words).map(n -> n.length()).toArray(); 

Вышеприведенный оператор возвращает Object[].Вы можете использовать .toArray(Integer[]::new);, но тогда вы получите Integer[]


Вместо этого вы можете использовать mapToInt:

int[] array = Arrays.stream(words).mapToInt(String::length).toArray();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...