4.4. Java примеры – Как перевернуть массив или вывести элементы массива в обратном порядке
Как перевернуть массив или вывести элементы массива в обратном порядке в Java?
Решение
В следующем примере переворачиваем элементы массива в Java с помощью метода Collections.reverse(ArrayList), т.е. выводим массив в обратном порядке.
import java.util.ArrayList; import java.util.Collections; public class Main < public static void main(String[] args) < ArrayList arrayList = new ArrayList(); arrayList.add("А"); arrayList.add("Б"); arrayList.add("В"); arrayList.add("Г"); arrayList.add("Д"); System.out.println("До обратного порядка: " + arrayList); Collections.reverse(arrayList); System.out.println("После обратного порядка: " + arrayList); >>
Результат
Вышеприведенный пример кода даст следующий результат:
До обратного порядка: [А, Б, В, Г, Д] После обратного порядка: [Д, Г, В, Б, А]
Следующий пример является еще одним примером реверса (обратным порядком) массива.
public class HelloWorld < public static void main(String[] args) < int[] numbers = < 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 >; System.out.println("Массив перед реверсом:"); for (int i = 0; i < numbers.length; i++) < System.out.print(numbers[i] + " "); >for (int i = 0; i < numbers.length / 2; i++) < int temp = numbers[i]; numbers[i] = numbers[numbers.length - 1 - i]; numbers[numbers.length - 1 - i] = temp; >System.out.println("\nМассив после реверса:"); for (int i = 0; i < numbers.length; i++) < System.out.print(numbers[i] + " "); >> >
Вышеприведенный пример кода даст следующий результат:
Массив перед реверсом: 1 2 3 4 5 6 7 8 9 10 Массив после реверса: 10 9 8 7 6 5 4 3 2 1
Оглавление
- 1. Java примеры – Использование кода на практике
- 2. Java примеры – Окружающая среда
- 2.1. Java примеры – Скомпилировать файл
- 2.2. Java примеры – Установить путь к нескольким классам
- 2.3. Java примеры – Отладка java-файла
- 2.4. Java примеры – Установить путь к классу
- 2.5. Java примеры – Просмотреть текущий путь класса
- 2.6. Java примеры – Установить назначение файла класса
- 2.7. Java примеры – Запустить скомпилированный java-файл класса
- 2.8. Java примеры – Узнать версию Java
- 2.9. Java примеры – Установить путь к классу в .jar-файле или .zip-файле
- 3. Java примеры – Строки
- 3.1. Java примеры – Сравнить две строки
- 3.2. Java примеры – Найти последнее вхождение подстроки внутри подстроки
- 3.3. Java примеры – Удалить нужный символ из строки
- 3.4. Java примеры – Заменить символ в строке
- 3.5. Java примеры – Вывод в обратном порядке
- 3.6. Java примеры – Нахождение символа или слова в строке
- 3.7. Java примеры – Разбиение строки на слова и символы
- 3.8. Java примеры – Преобразование строки в верхний регистр
- 3.9. Java примеры – Найти слово в строке
- 3.10. Java примеры – Сравнить производительность создания строки
- 3.11. Java примеры – Оптимизировать создание строк
- 3.12. Java примеры – Форматирование строк
- 3.13. Java примеры – Конкатенация строк
- 3.14. Java примеры – Определить код Юникода символа в строке
- 3.15. Java примеры – Буферизация строк
- 4. Java примеры – Массивы
- 4.1. Java примеры – Сортировка массива и поиск элемента
- 4.2. Java примеры – Метод сортировки массива, вставить элемент в массив
- 4.3. Java примеры – Размер двумерного массива
- 4.4. Java примеры – Обратный порядок массива, переворачиваем массив
- 4.5. Java примеры – Как выводить массивы и двумерные массивы в консоль
- 4.6. Java примеры – Найти максимальный и минимальный элемент массива
- 4.7. Java примеры – Соединить два массива в один
- 4.8. Java примеры – Как заполнить массив числами
- 4.9. Java примеры – Увеличить массив после инициализации
- 4.10. Java примеры – Сравнение двух массивов
- 4.11. Java примеры – Удаление элемента из массива
- 4.12. Java примеры – Удаление массива из другого массива
- 4.13. Java примеры – Одинаковые элементы массивов
- 4.14. Java примеры – Поиск в массиве
- 4.15. Java примеры – Равенство двух массивов
- 4.16. Java примеры – Сравнить массивы
- 5. Java примеры – Дата и время
- 5.1. Java примеры – Форматирование времени в формате AM-PM
- 5.2. Java примеры – Получение названия и номера текущего месяца
- 5.3. Java примеры – Получить текущее время в часах и минутах
- 5.4. Java примеры – Вывести текущее время и дату
- 5.5. Java примеры – Вывести текущее время в 24-часовом формате
- 5.6. Java примеры – Получить текущий месяц
- 5.7. Java примеры – Получить текущие секунды
- 5.8. Java примеры – Получить короткое название месяца
- 5.9. Java примеры – Получить день недели
- 5.10. Java примеры – Добавление времени к дате
- 5.11. Java примеры – Отображение времени в формате другой страны
- 5.12. Java примеры – Отображение времени на разных языках
- 5.13. Java примеры – Прокрутить часы и месяцы
- 5.14. Java примеры – Получить номер недели и месяц в году
- 5.15. Java примеры – Форматы текущей даты
- 6. Java примеры – Методы
- 6.1. Java примеры – Перезагрузка методов
- 6.2. Java примеры – Вывод массива с использованием метода
- 6.3. Java примеры – Решение Ханойской башни
- 6.4. Java примеры – Последовательность чисел Фибоначчи
- 6.5. Java примеры – Вычисление факториала числа
- 6.6. Java примеры – Переопределение метода
- 6.7. Java примеры – Вывод массива с использованием метода
- 6.8. Java примеры – Использование оператора break
- 6.9. Java примеры – Использование оператора continue
- 6.10. Java примеры – Использование метки в методе
- 6.11. Java примеры – Использование операторов enum и switch
- 6.12. Java примеры – Использование конструктора enum
Как заставить адаптер брать данные из ArrayList в обратном порядке?

Сергей Семенко: Вот единственный нормальный ответ. Браво! Адаптер должен только уметь мапить объекты на вьюхи, их порядок — не его дело. Это бизнес-логика.
Решения вопроса 1
Android noob
ArrayList List = new ArrayList<>(); // Исходный ArrayList ArrayList newList = new ArrayList<>(); List.add("Первый"); // Заполнил List List.add("Второй"); List.add("Третий"); for (int i=List.size()-1; i>=0; i--) // Перевернул List и засунул newList.add(List.get(i)); // в newList for(String str : newList) System.out.println(str);
public class MyAdapter extends ArrayAdapter < private Listlist; public MyAdapter(Context context, int resource, List list) < super(context, resource, list); this.list=list; >@Override public int getCount() < return list.size(); >@Override public String getItem(int position) < return list.get((position-list.size())*-1-1); >>
Ошибка сервера в приложении ‘/’.
Описание: На сервере возникла ошибка приложения. Текущая пользовательская настройка ошибок для этого приложения не позволяет удаленно просматривать сведения об ошибке данного приложения (из соображений безопасности). Однако, сведения можно просматривать в браузерах, запущенных на локальном сервере.
Сведения: Для разрешения просмотра сведений данного сообщения об ошибке на локальном сервере создайте тег в файле конфигурации «web.config», который находится в корневом каталоге текущего веб-приложения. В теге следует задать атрибут «mode» со значением «Off».
Примечания: Отображаемую в данный момент страницу ошибок можно заменить на пользовательскую страницу ошибок, изменив атрибут «defaultRedirect» тега конфигурации приложения таким образом, чтобы он содержал URL-адрес пользовательской страницы ошибок.
перевернуть массив
Почему не выводится перевернутый массив? то есть, последний элемент массива должен стать первым и т.д.
public class Mane < public void sort(int[] massive)< int[]arraySort = new int[10]; for(int i = 4; i >= 0; i--) < arraySort[4 - i] = massive[i]; for(int a = 0; a < 5; a++)< massive[a] = arraySort[a]; >> > public static void main(String[] arg)< int[] mass = ; Mane m = new Mane(); m.sort(mass); for(int i: mass) < System.out.println(i); >> >
Отслеживать
68k 218 218 золотых знаков 79 79 серебряных знаков 221 221 бронзовый знак
задан 8 фев 2016 в 16:23
99 2 2 золотых знака 2 2 серебряных знака 8 8 бронзовых знаков
Вы дебажить пробовали?
8 фев 2016 в 16:24
я конечно не эксперт, но чет код слишком запутан.
8 фев 2016 в 16:25
4 ответа 4
Сортировка: Сброс на вариант по умолчанию
Зачем два массива, зачем вложенные циклы?
public void sort(int[] massive) < for (int i = 0; i < massive.length / 2; i++) < int tmp = massive[i]; massive[i] = massive[massive.length - i - 1]; massive[massive.length - i - 1] = tmp; >>
Отслеживать
ответ дан 8 фев 2016 в 16:43
875 5 5 серебряных знаков 8 8 бронзовых знаков
Не знаю почему но у меня java.lang.ArithmeticException: divide by zero
11 фев 2017 в 2:47
@АндрейШпилевой где же вы там нашли деление на 0?
12 фев 2017 в 11:49
не я, а студия нашла
23 фев 2017 в 18:22
Спросите её тогда.
23 фев 2017 в 18:24
Collections.reverse(Arrays.asList(source)).toArray(new int[source.length]);
да, это будет использовать избыточные ресурсы; нет, это не страшно
Отслеживать
ответ дан 8 фев 2016 в 16:47
36.1k 2 2 золотых знака 56 56 серебряных знаков 83 83 бронзовых знака
Обоснуйте фразу «нет, это не страшно». Вы случайно не разработчик Google Chrome?
8 фев 2016 в 17:09
Прикольно, но на примитивах не сработает, java.util.Collections.reverse ничего не возвращает, toArray(new int[whatever]) тоже работать не будет. ЗИС ИЗ ЖАВА!11
8 фев 2016 в 17:12
Кроме того, Arrays.asList создает представление над массивом, и вызовы set на этом списке меняют исходный массив, т.е. для Integer[] source = <1, 2, 3, 4, 5>; вызов Collections.reverse(Arrays.asList(source)) сделает перестановку в source .1,>
8 фев 2016 в 17:15
@zRrr да, я попался на эту удочку, ответ писал параллельно болтая в офисе, позор мне.
8 фев 2016 в 19:04
Конечному пользователю все равно, сколько времени потрачено на код — ему главное, чтобы работало, и работало быстро. Ваш код: 1) не работает, 2) даже исправленный, создает ненужную копию массива в памяти. Если учить новичка, то зачем сразу плохому?