Метод sort, чтобы упорядочивать ArrayList в Java

Я считаю очевидной динамику целых чисел в Java, а именно:

ArrayList<Integer> lista = new ArrayList<Integer>();

... и к этой я добавляю ему числа.

lista.add(5); lista.add(7); lista.add(3);

То, что я хочу, состоит в том, чтобы упорядочивать этот список, и который остается таким, 3, 5, 7, и для этого, я старался использовать так называемый метод sort, следующего способа.

lista.sort();

Но он просит у меня аргумент, который я не знаю. Я хотел бы упорядочить это несовершеннолетнего в больший, хотя, если я могу приказывать это несовершеннолетнему большего, не важно, потому что потом я могу кружить список.

Ошибка, которая у меня есть:

The method sort (Comparator <? супер Integer>) in the type Арраилист <Integer> is not applicable for the arguments ()

Как я делаю, чтобы применять этот метод sort к списку?

12
задан 30.11.2016, 13:32
3 ответа

Перед Java 8 ты можешь называть .sort() таким образом:

lista.sort(new Comparator<Integer>() {
    @Override
    public int compare(Integer o1, Integer o2) {
        return o1.compareTo(o2);
    }
});

DemostraciГіn .

Начиная с Java 8, ты можешь упрощать вызов используя одну expresiГіn lambda:

lista.sort((o1, o2) -> o1.compareTo(o2));

DemostraciГіn .

Или tambiГ©n ты можешь использовать ответ, предложенный из-за @Error404.

14
ответ дан 24.11.2019, 12:19

Ты сможешь делать это импортируя класс Collections:

import java.util.Collections;

И используя метод sort следующего способа:

Collections.sort(lista);

А следовательно твой полный пример остался бы:

import java.util.ArrayList;
import java.util.Collections;

public class OrdenaNumeros
{
  public static void main(String[] args)
  {
    ArrayList<Integer> lista = new ArrayList<Integer>();
    lista.add(5); 
    lista.add(7); 
    lista.add(3);

    Collections.sort(lista);

    for (Integer numero: lista) {
        System.out.println(numero);
    }   

  }
}

То, что дало бы тебе следующий вывод:

3
5
7
14
ответ дан 24.11.2019, 12:19
ArrayList<Integer> lista = new ArrayList<Integer>();
    lista.add(5);
    lista.add(7);
    lista.add(3);

    Collections.sort(lista, Integer::compareTo);
    for (Integer in : lista) {
        System.out.println(in);
    }
0
ответ дан 24.11.2019, 12:19