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

Как отсортировать arraylist java

  • автор:

Как отсортировать arraylist java

Ниже приведены несколько способов сортировки коллекций :

import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List; import java.util.stream.Collectors; public class App  public static void main(String[ ] args)  ListInteger> list = new ArrayList<>(List.of(5, 3, 2, 1, 4)); Collections.sort(list); System.out.println(list); // => [1, 2, 3, 4, 5] list.sort(Comparator.reverseOrder()); System.out.println(list); // => [5, 4, 3, 2, 1] list = list.stream() .sorted() .collect(Collectors.toList()); System.out.println(list); // => [1, 2, 3, 4, 5] > > 

Сортировка Arraylist java

В этой статье мы поделимся примерами сортировки String ArrayList и Integer ArrayList.

Пример 1: сортировка ArrayList

Здесь мы сортируем ArrayList типа String. Делать это можно, просто используя метод Collections.sort (arraylist). Список вывода будет отсортирован по алфавиту.

import java.util.*; public class Details < public static void main(String args[])< ArrayList listofcountries = new ArrayList(); listofcountries.add("India"); listofcountries.add("US"); listofcountries.add("China"); listofcountries.add("Denmark"); /*Unsorted List*/ System.out.println("До:"); for(String counter: listofcountries)< System.out.println(counter); >/* Sort statement*/ Collections.sort(listofcountries); /* Sorted List*/ System.out.println("После:"); for(String counter: listofcountries) < System.out.println(counter); >> >
До: India US China Denmark После: China Denmark India US

Пример 2

Тот же метод Collections.sort() можно использовать и для сортировки целочисленного массива Java.

import java.util.*; public class ArrayListOfInteger < public static void main(String args[])< ArrayList arraylist = new ArrayList(); arraylist.add(11); arraylist.add(2); arraylist.add(7); arraylist.add(3); /* ArrayList before the sorting*/ System.out.println("Before Sorting:"); for(int counter: arraylist)< System.out.println(counter); >/* Sorting of arraylist using Collections.sort*/ Collections.sort(arraylist); /* ArrayList after sorting*/ System.out.println("After Sorting:"); for(int counter: arraylist) < System.out.println(counter); >> >
Before Sorting: 11 2 7 3 After Sorting: 2 3 7 11

Сортировка по убыванию

Мы используем метод Collections.reverseOrder() вместе с Collections.sort() для сортировки списка в порядке убывания. В приведенном ниже примере мы использовали инструкцию для сортировки в обратном порядке: Collections.sort (arraylist, Collections.reverseOrder ()).

Однако это также можно выполнить следующим образом. Тогда список будет сначала отсортирован в порядке возрастания, а затем будет перевернут:

  1. Collections.sort (список);
  2. Collections.reverse (список).
import java.util.*; public class Details < public static void main(String args[])< ArrayListarraylist = new ArrayList(); arraylist.add("AA"); arraylist.add("ZZ"); arraylist.add("CC"); arraylist.add("FF"); /*Unsorted List: ArrayList content before sorting*/ System.out.println("Before Sorting:"); for(String str: arraylist) < System.out.println(str); >/* Sorting in decreasing order*/ Collections.sort(arraylist, Collections.reverseOrder()); /* Sorted List in reverse order*/ System.out.println("ArrayList in descending order:"); for(String str: arraylist) < System.out.println(str); >> >
Before Sorting: AA ZZ CC FF ArrayList in descending order: ZZ FF CC AA

В приведенном выше примере мы использовали ArrayList типа String (ArrayList ). Этот же метод можно применять и для списка целых чисел.

Средняя оценка 4.4 / 5. Количество голосов: 42

Спасибо, помогите другим — напишите комментарий, добавьте информации к статье.

Или поделись статьей

Видим, что вы не нашли ответ на свой вопрос.

Помогите улучшить статью.

Напишите комментарий, что можно добавить к статье, какой информации не хватает.

Как отсортировать ArrayList по убыванию вставленных целочисленных чисел типа String

Столкнулся с задачей отсортировать биржи по объему, от большего к меньшему, но, все перевести я должен в ArrayList, если с названием и URL проблем нет, то вот как отсортировать по убыванию думаю весь день. Методом .sort() не получается, к сожалению. Объект в ArrayList выглядит так:

4710,BitMart-https://www.bitmart.com/trade/en?layout=basic&symbol=XCAD_USDT| $XCAD / $USDT | 

4710 — объем Как по нему отсортировать?
Отслеживать
задан 18 авг 2022 в 19:43
29 7 7 бронзовых знаков
Методом .sort() не получается что не получается?
18 авг 2022 в 19:44
вообще задача выглядит как «спарсить число из строки и по нему отсортировать»
18 авг 2022 в 19:45
Collections.sort(list, (d1, d2) -> d2.volume — d1.volume);
18 авг 2022 в 19:46
Что такое числовые числа типа String?
18 авг 2022 в 20:13
Не правильно выразился, целочисленные числа типа String Не 7, а «7»
19 авг 2022 в 8:37

2 ответа 2

Сортировка: Сброс на вариант по умолчанию

Если «числовое число» находится в начале строки и после него следует запятая, можно вырезать подстроку до первой запятой при помощи String::substring + String::indexOf , преобразовать её в целое при помощи Integer::parseInt , и отсортировать при помощи Comparator.comparingInt + Comparator::reversed

list.sort( Comparator.comparingInt(s -> Integer.parseInt( s.substring(0, s.indexOf(",")) )) .reversed() ); 

Отслеживать
ответ дан 18 авг 2022 в 21:38
Nowhere Man Nowhere Man
15.1k 28 28 золотых знаков 19 19 серебряных знаков 29 29 бронзовых знаков
Да, это то что было мне нужно, храни тебя вселенная)
19 авг 2022 в 8:36

Если я правильно понял как у тебя хранятся данные в ArrayList То думаю можно сделать так:

 List list = new ArrayList<>(); list.add("2"); list.add("1"); list.add("6"); list.add("5"); System.out.println(list.toString()); Вывод [2, 1, 6, 5] list.sort(new Comparator() < @Override public int compare(String o1, String o2) < return o1.compareTo(o2); >>); System.out.println(list.toString()); Вывод [1, 2, 5, 6] 

UPD

list.add("2, F"); list.add("1, C"); list.add("6, A"); list.add("5, D"); Вывод [2, F, 1, C, 6, A, 5, D] list.sort(new Comparator() < @Override public int compare(String o1, String o2) < o1 = o1.substring(0, o1.indexOf(",")); o2 = o2.substring(0, o2.indexOf(",")); return o1.compareTo(o2); >>); Вывод [1, C, 2, F, 5, D, 6, A] 

Как отсортировать коллекцию java

Ниже приведены несколько способов сортировки коллекций :

import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List; import java.util.stream.Collectors; public class App  public static void main(String[ ] args)  ListInteger> list = new ArrayList<>(List.of(5, 3, 2, 1, 4)); Collections.sort(list); System.out.println(list); // => [1, 2, 3, 4, 5] list.sort(Comparator.reverseOrder()); System.out.println(list); // => [5, 4, 3, 2, 1] list = list.stream() .sorted() .collect(Collectors.toList()); System.out.println(list); // => [1, 2, 3, 4, 5] > > 

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

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