Saltar al contenido

Cómo ordenar ArrayList en Java

septiembre 23, 2021

En Java, Colección es un marco que proporciona interfaces (Establecer, Lista, Cola, etc.) y clases (ArrayList, LinkedList, etc.) para almacenar el grupo de objetos. Estas clases almacenan datos de manera desordenada. A veces necesitamos organizar los datos de una manera ordenada que se conoce como clasificación. La clasificación se puede realizar de dos formas, ya sea en ascendente o descendente pedido.

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 el java.util paquete. 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 una ArrayList de dos formas, en orden ascendente y descendente. La clase Colecciones proporciona dos métodos para ordenar una ArrayList en Java.

Método Collections.sort ()

Una ArrayList se puede ordenar usando el clasificar() método de la clase Colecciones en Java. Acepta un objeto de ArrayList como parámetro para ordenar y devuelve una ArrayList ordenada en orden ascendente de acuerdo con el orden natural de sus elementos.

Sintaxis

Recordar: Todos los elementos de ArrayList deben ser mutuamente comparables; de lo contrario, arroja ClassCastException. Aquí, mutuamente comparable significa que la lista debe tener el mismo tipo de elementos. Por ejemplo, considere el fragmento del código:

En el ejemplo anterior, vemos que una lista tiene cuatro elementos, de los cuales tres elementos son de tipo String y uno es de tipo Integer. Los tres elementos que están en String son mutuamente comparables, 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 descendente orden, la clase Colecciones Java proporciona orden inverso() método. Nos permite ordenar ArrayList en lexicográfico inverso pedido.

Sintaxis

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 Collection.sort () método, como sigue.

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

Creemos programas que clasifiquen ArrayList en orden ascendente.

Ordenar ArrayList en orden ascendente

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

SortArrayListExample1.java

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 una ArrayList de tipo Integer.

SortArrayListExample2.java

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, hemos creado una ArrayList de tipo String y le hemos agregado algunos elementos. Después de eso, hemos invocado el método reverseOrder () junto con el método sort () de la clase Collections y pasado el objeto de la clase ArrayList, es decir, una lista que ordena los elementos en orden descendente.

SortArrayListExample3.java

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

Producción:

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

close