#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());
Комментариев нет:
Отправить комментарий