Какой самый оптимальный способ конвертировать Arraylist <Integer>в char [] - PullRequest
0 голосов
/ 12 февраля 2019

Мне интересно, возможно ли в любом случае с помощью потокового API преобразовать

List<Integer> li = Arrays.asList(1,2,3,45,678); 

в char[] ch, не переходя на промежуточный этап String?Я не мог найти один.

Ответы [ 3 ]

0 голосов
/ 12 февраля 2019

Возможно, способ перебрать список и присвоить значения соответствующему индексу в массиве как:

IntStream.range(0, li.size())
         .forEach(i -> ch[i] = (char) li.get(i).intValue());

или если примитивы не обязательны, то что-то вроде:

Character[] ch = li.stream()
                   .map(i -> (char) i.intValue())
                   .toArray(Character[]::new);
0 голосов
/ 12 февраля 2019

Я достиг решения, но мне нужно было промежуточное String Преобразование.

List<Integer> li = Arrays.asList(1,2,3,45,678); 
        String Str =li.toString();
        char [] ch = new char[Str.length()];
        for(int i=0;i<Str.length();i++)
        {
         ch[i] =    Str.charAt(i);
        }
        for(char cc:ch)
        {        
            System.out.print(cc);
        }

Вывод: [1, 2, 3, 45, 678]

0 голосов
/ 12 февраля 2019

Я думаю, что самый простой способ - объявить массив символов и сохранить массив списков в массиве char с помощью цикла for и функции toArray ().

...