logo

Cómo ordenar ArrayList en Java

En Java, Recopilación es un marco que proporciona interfaces ( Establecer, listar, poner en cola, etc.) y clases ( Lista de matrices, Lista vinculada, etc.) para almacenar el grupo de objetos. Estas clases almacenan datos de forma desordenada. A veces necesitamos organizar los datos de forma ordenada, lo que se conoce como clasificación . La clasificación se puede realizar de dos maneras, ya sea en ascendiendo o descendiendo orden.

En esta sección aprenderemos cómo ordenar ArrayList en forma ascendente y orden descendiente.

Lista de arreglo

En Java , Lista de arreglo es una clase de marco de Colecciones que se define en eljava.utilpaquete. Hereda la clase AbstractList. Almacena dinámicamente los elementos. La ventaja de ArrayList es que no tiene límite de tamaño. Es más flexible que la matriz tradicional. Puede tener elementos duplicados. También podemos usar todos los métodos de la interfaz List porque implementa el Lista interfaz.

Podemos ordenar un ArrayList de dos maneras, en orden ascendente y descendente. La clase Colecciones proporciona dos métodos para ordenar una ArrayList en Java.

    clasificar() orden inverso()

Método Colecciones.sort()

Una ArrayList se puede ordenar usando el clasificar() método de la Clase de colecciones en Java . Acepta un objeto de ArrayList como parámetro a ordenar y devuelve un ArrayList ordenado en orden ascendente según el orden natural de sus elementos.

pitón // operador

Sintaxis

 public static <t extends comparable> void sort(List list) </t>

Recordar: Todos los elementos en ArrayList deben ser mutuamente comparables; de lo contrario, arroja Excepción ClassCast. En este caso, mutuamente comparable significa que la lista debe tener el mismo tipo de elementos. Por ejemplo, considere el fragmento de código:

 //creating an instance of ArrayList that contains String type elements ArrayList list = new ArrayList(); list.add(&apos;Computer&apos;); list.add(123); list.add(&apos;Hard Disk&apos;); list.add(&apos;DRAM&apos;); 

En el ejemplo anterior, vemos que una lista tiene cuatro elementos, de los cuales tres elementos son de tipo Cadena y uno es de tipo Entero. Los tres elementos que están en String son comparables entre sí pero el elemento que es de tipo Integer no es comparable con los otros tres. Por tanto, la lista debe tener el mismo tipo de elementos.

Método Collections.reverseOrder()

Si queremos ordenar ArrayList en descendiendo orden, Colecciones Java la clase proporciona orden inverso() método. Nos permite ordenar el ArrayList en lexicográfico inverso orden.

Sintaxis

 public static Comparator reverseOrder() 

Devuelve un comparador que impone el orden inverso al natural en una colección de objetos que implementan la interfaz Comparable.

Recuerde que no invocamos directamente el método reverseOrder(). Lo usamos junto con el Colección.sort() método, como sigue.

 Collections.sort(objectOfArrayList, Collections.reverseOrder()); 

Por lo tanto, la clasificación de ArrayList en orden descendente se realiza en dos pasos: primero, ArrayList clasifica los datos en orden ascendente, luego los datos ordenados se invierten mediante el orden inverso() método.

Creemos programas que clasifiquen ArrayList en orden ascendente.

Ordenar ArrayList en orden ascendente

En el siguiente ejemplo, creamos un ArrayList de tipo String y le agregamos algunos elementos. Después de eso, invocamos el método sort() de la clase Colecciones y pasamos el objeto de la clase ArrayList, es decir, la lista que ordena los elementos en orden ascendente.

SortArrayListExample1.java

alfabeto en números
 import java.util.*; public class SortArrayListExample1 { public static void main(String args[]) { // creating object of ArrayList class ArrayList list = new ArrayList(); // adding elements to the ArrayList list.add(&apos;Volkswagen&apos;); list.add(&apos;Toyota&apos;); list.add(&apos;Porsche&apos;); list.add(&apos;Ferrari&apos;); list.add(&apos;Mercedes-Benz&apos;); list.add(&apos;Audi&apos;); list.add(&apos;Rolls-Royce&apos;); list.add(&apos;BMW&apos;); // printing the unsorted ArrayList System.out.println(&apos;Before Sorting: &apos;+ list); // Sorting ArrayList in ascending Order Collections.sort(list); // printing the sorted ArrayList System.out.println(&apos;After Sorting: &apos;+ list); } } 

Producción:

 Before Sorting: [Volkswagen, Toyota, Porsche, Ferrari, Mercedes-Benz, Audi, Rolls-Royce, BMW] After Sorting: [Audi, BMW, Ferrari, Mercedes-Benz, Porsche, Rolls-Royce, Toyota, Volkswagen] 

Veamos otro ejemplo que ordena un ArrayList de tipo Integer.

SortArrayListExample2.java

llamar a una función js desde html
 import java.util.*; public class SortArrayListExample2 { public static void main(String args[]) { //creating an object of ArrayList class ArrayList list = new ArrayList(); list.add(55); list.add(34); list.add(98); list.add(67); list.add(39); list.add(76); list.add(81); //printing ArrayList before sorting System.out.println(&apos;ArrayList Before Sorting:&apos;); for(int marks: list) { System.out.println(marks); } //sorting ArrayList in ascending order Collections.sort(list); //printing ArrayList after sorting System.out.println(&apos;ArrayList After Sorting:&apos;); for(int marks: list) { System.out.println(marks); } } } 

Producción:

 ArrayList Before Sorting: 55 34 98 67 39 76 81 ArrayList After Sorting: 34 39 55 67 76 81 98 

Ordenar ArrayList en orden descendente

En el siguiente ejemplo, creamos un ArrayList de tipo String y le agregamos algunos elementos. Después de eso, invocamos el método reverseOrder() junto con el método sort() de la clase Colecciones y pasamos el objeto de la clase ArrayList, es decir, la lista que ordena los elementos en orden descendente.

SortArrayListExample3.java

 import java.util.*; public class SortArrayListExample3 { public static void main(String args[]) { // creating object of ArrayList class ArrayList list = new ArrayList(); // adding elements to the ArrayList list.add(&apos;Data Science&apos;); list.add(&apos;Testing&apos;); list.add(&apos;C#&apos;); list.add(&apos;Basic Language&apos;); list.add(&apos;UML&apos;); list.add(&apos;Algorithms &apos;); list.add(&apos;Computer Networks&apos;); list.add(&apos;Python&apos;); // printing the unsorted ArrayList System.out.println(&apos;Before Sorting: &apos;+ list); // Sorting ArrayList in ascending Order // using Collection.sort() method Collections.sort(list, Collections.reverseOrder()); // Print the sorted ArrayList System.out.println(&apos;After Sorting: &apos;+ list); } } 

Producción:

 Before Sorting: [Data Science, Testing, C#, Basic Language, UML, Algorithms, Computer Networks, Python] After Sorting: [UML, Testing, Python, Data Science, Computer Networks, C#, Basic Language, Algorithms] 

SortArrayListExample4.java

 import java.util.*; public class SortArrayListExample4 { public static void main(String args[]) { //creating an object of ArrayList class ArrayList list = new ArrayList(); list.add(566); list.add(230); list.add(123); list.add(110); list.add(689); list.add(12); list.add(95); //printing ArrayList before sorting System.out.println(&apos;ArrayList Before Sorting:&apos;); for(int marks: list) { System.out.println(marks); } //sorting ArrayList in descending order Collections.sort(list, Collections.reverseOrder()); //printing ArrayList after sorting System.out.println(&apos;ArrayList After Sorting:&apos;); for(int marks: list) { System.out.println(marks); } } } 

Producción:

 ArrayList Before Sorting: 566 230 123 110 689 12 95 ArrayList After Sorting: 689 566 230 123 110 95 12