Ordenar una lista en Java

Lovey Arora 12 octubre 2023
  1. Utilice el método Collections.sort() para ordenar una lista en Java
  2. Utilice el método Collections.reverseorder() para ordenar una lista en Java
  3. Utilice el método Stream.sorted() para ordenar una lista en Java
  4. Utilice el método Comparator.naturalOrder() para ordenar una ArrayList en Java
Ordenar una lista en Java

Una lista es una colección ordenada y puede almacenar artículos en cualquier orden. Podemos aplicar algoritmos tradicionales a una lista.

Este tutorial demostrará cómo ordenar una lista en Java usando diferentes funciones.

Utilice el método Collections.sort() para ordenar una lista en Java

Podemos usar la función sort() de la clase Collections para ordenar una lista. Podemos tomar el objeto de lista y modifica el orden de los elementos. Ordena la lista en orden ascendente.

Por ejemplo,

import java.util.*;
import java.util.stream.*;

public class Main {
  public static void main(String[] args) {
    List<Integer> slist = Arrays.asList(4, 5, 1, 2, 8, 9, 6);
    Collections.sort(slist);
    System.out.println("After Sorting: " + slist);
  }
}

Producción :

After Sorting: [1, 2, 4, 5, 6, 8, 9]

Podemos ver que la lista original se modifica y ordena en el orden apropiado en el código anterior.

Tenga en cuenta que debe haber los mismos tipos de elementos en la lista; de lo contrario, arrojará CLassCastException.

Utilice el método Collections.reverseorder() para ordenar una lista en Java

Usamos el método Collections.reverseorder() para ordenar ArrayList en orden descendente. No usamos este método directamente. Primero, el método Collections.sort() se usa para ordenar en orden ascendente, y luego el método Collections.reverseorder() se usa para ordenar en orden descendente.

Vea el código a continuación.

import java.util.*;
import java.util.stream.*;

public class Main {
  public static void main(String[] args) {
    List<Integer> slist = Arrays.asList(4, 5, 1, 2, 8, 9, 6);
    Collections.sort(slist, Collections.reverseOrder());
    System.out.println("After Sorting: " + slist);
  }
}

Producción :

After Sorting: [9, 8, 6, 5, 4, 2, 1]

Hemos creado una lista en el código anterior y luego la hemos ordenado usando el método Collections.sort(). Luego se ordena en orden descendente utilizando el método Collections.reverseorder().

Utilice el método Stream.sorted() para ordenar una lista en Java

La función sorted() se define en la interfaz Stream presente en el paquete java.util. Al usar este método, la lista se ordena en orden ascendente. Si los elementos de la lista no son del mismo tipo, arroja java.lang.ClassCastEcxeption.

Aquí, usaremos la función stream() para administrar la colección de elementos en la lista, collect() recibirá y almacenará los elementos, y la función tolist() devolverá la lista final en el orden pedido.

Por ejemplo,

import java.util.*;
import java.util.stream.*;

public class Main {
  public static void main(String[] args) {
    List<Integer> slist = Arrays.asList(4, 5, 1, 2, 8, 9, 6);
    List<Integer> sortedList = slist.stream().sorted().collect(Collectors.toList());
    System.out.println("After Sorting: " + sortedList);
  }
}

Producción :

After Sorting: [1, 2, 4, 5, 6, 8, 9]

Tenga en cuenta que se crea una nueva lista en el ejemplo anterior.

Utilice el método Comparator.naturalOrder() para ordenar una ArrayList en Java

La interfaz Comparator en Java puede ordenar los objetos de las clases creadas por el usuario en función del miembro de datos deseado. También podemos usarlo para ordenar listas.

La función naturalOrder() ordenará los elementos en orden ascendente.

Consulte el código que se proporciona a continuación.

import java.util.*;
import java.util.stream.*;

public class Main {
  public static void main(String[] args) {
    List<Integer> slist = Arrays.asList(4, 5, 1, 2, 8, 9, 6);
    slist.sort(Comparator.naturalOrder());
    System.out.println("After Sorting: " + slist);
  }
}

Producción :

After Sorting: [1, 2, 4, 5, 6, 8, 9]

Los elementos nulos se ordenan en la parte superior mediante este método. Cuando se trata de alfabetos, las palabras que comienzan con letras mayúsculas se ordenan primero y luego las palabras que comienzan con letras minúsculas se ordenan en orden ascendente.

Podemos usar la función reverseOrder() como se discutió anteriormente para ordenar en orden descendente.

Por ejemplo,

import java.util.*;
import java.util.stream.*;
public class Main {
  public static void main(String[] args) {
    List<Integer> slist = Arrays.asList(4, 5, 1, 2, 8, 9, 6);
    slist.sort(Comparator.reverseOrder());
    System.out.println("After Sorting: " + slist);
  }
}

Producción :

After Sorting: [9, 8, 6, 5, 4, 2, 1]

Artículo relacionado - Java List