Перейти к содержимому

Как перевернуть arraylist java

  • автор:

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 в обратном порядке?

abler98

Сергей Семенко: Вот единственный нормальный ответ. Браво! Адаптер должен только уметь мапить объекты на вьюхи, их порядок — не его дело. Это бизнес-логика.

Решения вопроса 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 .

8 фев 2016 в 17:15
@zRrr да, я попался на эту удочку, ответ писал параллельно болтая в офисе, позор мне.
8 фев 2016 в 19:04

Конечному пользователю все равно, сколько времени потрачено на код — ему главное, чтобы работало, и работало быстро. Ваш код: 1) не работает, 2) даже исправленный, создает ненужную копию массива в памяти. Если учить новичка, то зачем сразу плохому?

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *