Страницы

Поиск по вопросам

воскресенье, 22 декабря 2019 г.

char[] в Character[]

#java #массивы #сортировка #char #java_8


Как перевести массив char[] к его оболочке Character[] для дальнейшей сортировки
в обратном порядке?
Делаю по аналогии как с int -> Integer:

int[] array = {...};
Integer[] newArray  = Arrays.stream(array).boxed().toArray(Integer[]::new);
Arrays.sort(newArray, Collections.reverseOrder());


Но с char так не работает:

Character[] newArray = Arrays.stream(array).boxed().toArray(Character[]::new);
Arrays.sort(newArray, Collections.reverseOrder());

    


Ответы

Ответ 1



Да, для примитивов char есть такая проблема. Можно например так её решить: char[] array = {'a','c','b'}; Character[] newArray = IntStream.range(0, array.length) .mapToObj(i -> array[i]) .toArray(Character[]::new); Arrays.sort(newArray, Collections.reverseOrder()); c, b, a

Ответ 2



Как вариант, можно использовать преобразование в строку и метод chars: char[] array = new char[] {'a', 'c', 'b'}; Character[] newArray = new String(array).chars() .mapToObj(i -> (char) i).toArray(Character[]::new);

Ответ 3



Используйте ArrayUtills Character[] charObjectArray = ArrayUtils.toObject(array); Arrays.sort(charObjectArray, Collections.reverseOrder());

Комментариев нет:

Отправить комментарий