Конвертировать из int в Integer и отсортировать - PullRequest
0 голосов
/ 04 мая 2018

Я пытаюсь преобразовать int в List Integer, чтобы применить потоковый метод для их сортировки, однако в нем говорится, что подходящего метода нет. Можно ли сделать это таким образом?

    public class Testsorting 
{
    public static int [] prize = {5,2,3,7,1,5,9,0,2};

    public static void main(String [] args)
    {
        List<Integer> list = Arrays.stream(prize).
                boxed().collect(Collectors.toList());

        System.out.println(list);

        List <Integer> sortedList = Arrays.stream(list) //error occured on this line
                                           .sorted()
                                           .collect(Collectors.toList());
    }
}

Ответы [ 2 ]

0 голосов
/ 04 мая 2018

Просто сделайте ниже, чтобы добиться этого в одну строку.

Arrays.stream(prize).sorted().boxed().collect(Collectors.toList());

или

Arrays.stream(prize).boxed().sorted().collect(Collectors.toList());

.stream преобразуется в IntStream, который поддерживает .sorted метод ootb, но вы не можете собрать IntStream непосредственно в список, такой как Collectors.toList(), потому что это поддерживается в классе Stream, поэтому мы можем использовать метод .boxed конвертировать IntStream в Stream, и вы можете использовать ярлык Collectors.toList напрямую.

Если вы не хотите конвертировать из IntStream в Stream, вызвав boxed, вы можете напрямую использовать

Arrays.stream(prize).sorted().collect(ArrayList::new,ArrayList::add,ArrayList::addAll);

Это также даст тот же результат.

0 голосов
/ 04 мая 2018

Изменить Arrays.stream(list) на list.stream()

public class Main {
    public static int [] prize = {5,2,3,7,1,5,9,0,2};

    public static void main(String [] args)
    {
        List<Integer> list = Arrays.stream(prize).
                boxed().collect(Collectors.toList());

        System.out.println(list);

        List <Integer> sortedList = list.stream() //error gone on this line
                                           .sorted()
                                           .collect(Collectors.toList());

        System.out.println(sortedList);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...