logo

Como classificar ArrayList em Java

Em Java, Coleção é uma estrutura que fornece interfaces ( Definir, listar, fila, etc.) e aulas ( ArrayList, LinkedList, etc.) para armazenar o grupo de objetos. Essas classes armazenam dados de maneira não ordenada. Às vezes, precisamos organizar os dados de maneira ordenada, o que é conhecido como Ordenação . A classificação pode ser realizada de duas maneiras: ascendente ou descendente ordem.

Nesta seção, aprenderemos como classificar ArrayList em ordem crescente e ordem decrescente.

ListaArray

Em Java , ListaArray é uma classe de estrutura de coleções definida no arquivojava.utilpacote. Ele herda a classe AbstractList. Ele armazena dinamicamente os elementos. A vantagem do ArrayList é que ele não tem limite de tamanho. É mais flexível que o array tradicional. Pode ter elementos duplicados. Também podemos usar todos os métodos da interface List porque ela implementa o Lista interface.

Podemos classificar um ArrayList de duas maneiras, em ordem crescente e decrescente. A classe Collections fornece dois métodos para classificar um ArrayList em Java.

    organizar() ordem reversa()

Método Collections.sort()

Um ArrayList pode ser classificado usando o organizar() método do Classe de coleções em Java . Ele aceita um objeto de ArrayList como parâmetro a ser ordenado e retorna um ArrayList ordenado em ordem crescente de acordo com a ordem natural de seus elementos.

stlc

Sintaxe

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

Lembrar: Todos os elementos do ArrayList devem ser mutuamente comparáveis, caso contrário, será gerado ClassCastException. Aqui, mutuamente comparável significa que a lista deve ter o mesmo tipo de elementos. Por exemplo, considere o trecho do 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;); 

No exemplo acima, vemos que uma lista possui quatro elementos, dos quais três elementos são do tipo String e um é do tipo Integer. Os três elementos que estão em String são mutuamente comparáveis, mas o elemento do tipo Integer não é comparável com os outros três. Portanto, a lista deve ter o mesmo tipo de elementos.

Método Collections.reverseOrder()

Se quisermos classificar ArrayList em descendente ordem, Coleções Java classe fornece ordem reversa() método. Isso nos permite classificar o ArrayList em lexicográfico reverso ordem.

Sintaxe

 public static Comparator reverseOrder() 

Retorna um comparador que impõe o inverso da ordem natural em uma coleção de objetos que implementam a interface Comparable.

Lembre-se de que não invocamos diretamente o método reverseOrder(). Nós o usamos junto com o Coleção.sort() método, como segue.

converter string para int
 Collections.sort(objectOfArrayList, Collections.reverseOrder()); 

Portanto, a ordenação do ArrayList em ordem decrescente é feita em duas etapas, primeiro o ArrayList ordena os dados em ordem crescente, depois os dados ordenados são revertidos pelo ordem reversa() método.

Vamos criar programas que classificam ArrayList em ordem crescente.

Classifique ArrayList em ordem crescente

No exemplo a seguir, criamos um ArrayList do tipo String e adicionamos alguns elementos a ele. Depois disso, invocamos o método sort() da classe Collections e passamos o objeto da classe ArrayList, ou seja, uma lista que classifica os elementos em ordem crescente.

SortArrayListExample1.java

 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); } } 

Saída:

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

Vejamos outro exemplo que classifica um ArrayList do tipo Integer.

SortArrayListExample2.java

 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); } } } 

Saída:

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

Classifique ArrayList em ordem decrescente

No exemplo a seguir, criamos um ArrayList do tipo String e adicionamos alguns elementos a ele. Depois disso, invocamos o método reverseOrder() junto com o método sort() da classe Collections e passamos o objeto da classe ArrayList, ou seja, uma lista que classifica os elementos em ordem decrescente.

o que é const em java

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); } } 

Saída:

 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); } } } 

Saída:

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