logo

Como classificar array de strings em Java

Na programação, Ordenação é importante porque coloca elementos de uma variedade em uma determinada ordem. A ordem amplamente utilizada é ordem alfabética ou ordem natural . A classificação é usada para canonizar (o processo de conversão de dados no formato padrão) dados e para produzir um formato legível por humanos. Nesta seção, aprenderemos como classificar array String em Java usando lógica definida pelo usuário e Matrizes. organizar() método

Existem duas maneiras de classificar um array de strings em Java:

  • Usando Usuário definido Lógica
  • Usando o Matrizes.sort() Método

Usando lógica definida pelo usuário

Podemos classificar um array de strings comparando cada elemento com os demais elementos. No exemplo a seguir, fizemos o mesmo. Usamos dois loops for. O loop for interno (segundo) evita as repetições em comparação. Se a condição (países[i].compareTo(países[j])>0) for verdadeira que 0, ele realiza a troca e classifica o array.

polimorfismo java

SortStringArrayExample1.java

 import java.util.Arrays; public class SortStringArrayExample1 { public static void main(String args[]) { //defining an array of type String String[] countries = {&apos;Zimbabwe&apos;, &apos;South-Africa&apos;, &apos;India&apos;, &apos;America&apos;, &apos;Yugoslavia&apos;, &apos; Australia&apos;, &apos;Denmark&apos;, &apos;France&apos;, &apos;Netherlands&apos;, &apos;Italy&apos;, &apos;Germany&apos;}; int size = countries.length; //logic for sorting for(int i = 0; i<size-1; i++) { for (int j="i+1;" j0) swapping array elements string temp="countries[i];" countries[i]="countries[j];" countries[j]="temp;" } prints the sorted in ascending order system.out.println(arrays.tostring(countries)); < pre> <p> <strong>Output:</strong> </p> <pre> [ Australia, America, Denmark, France, Germany, India, Italy, Netherlands, South-Africa, Yugoslavia, Zimbabwe] </pre> <h3>Using the Arrays.sort() Method</h3> <p>In Java, <strong>Arrays</strong> is the class defined in the java.util package that provides <strong>sort()</strong> method to sort an array in ascending order. It uses <strong>Dual-Pivot Quicksort algorithm</strong> for sorting. Its complexity is <strong>O(n log(n))</strong> . It is a <strong>static</strong> method that parses an <strong>array</strong> as a parameter and does not return anything. We can invoke it directly by using the class name. It accepts an array of type int, float, double, long, char, byte.</p> <p> <strong>Syntax:</strong> </p> <pre> public static void sort(int[] a) </pre> <p>Where <strong>a</strong> is an array to be short.</p> <h4>Note: Like the Arrays class, the Collections class also provides the sort() method to sort the array. But there is a difference between them. The sort() method of the Arrays class works for primitive type while the sort() method of the Collections class works for objects Collections, such as LinkedList, ArrayList, etc.</h4> <p>We can perform sorting in the following ways:</p> <ul> <tr><td>Ascending Order</td> or <strong>Alphabetical Order</strong> or <strong>Natural Order</strong>  </tr><tr><td>Descending Order</td> or <strong>Reverse Natural Order</strong>  </tr></ul> <h3>Sort String Array in Ascending Order or Alphabetical Order</h3> <p>The <strong>ascending order</strong> arranges the elements in the lowest to highest order. It is also known as <strong>natural order</strong> or <strong>alphabetical order</strong> .</p> <p>Let&apos;s sort an array using the sort() method of the Arrays class.</p> <p> <strong>SortStringArrayExample2.java</strong> </p> <pre> import java.util.Arrays; public class SortStringArrayExample2 { public static void main(String args[]) { //defining an array of type string String[] countries = {&apos;Wood apple&apos;, &apos;Blackberry&apos;, &apos;Date&apos;, &apos;Naseberry&apos;, &apos;Tamarind&apos;, &apos;Fig&apos;, &apos;Mulberry&apos;, &apos;Apple&apos;, &apos;Plum&apos;, &apos;Orange&apos;, &apos;Custard apple&apos;, &apos;Apricot&apos;}; //sorts string array in alphabetical order or ascending order Arrays.sort(countries); //prints the sorted string array in ascending order System.out.println(Arrays.toString(countries)); } } </pre> <p> <strong>Output:</strong> </p> <pre> [Apple, Apricot, Blackberry, Custard apple, Date, Fig, Mulberry, Naseberry, Orange, Plum, Tamarind, Wood apple] </pre> <h3>Sort String Array in Descending Order or Reverse Natural Order</h3> <h3>Using the reverseOrder() Method</h3> <p>Java <strong>Collections</strong> class provides the <strong>reverseOrder()</strong> method to sort the array in reverse-lexicographic order. It is a static method, so we can invoke it directly by using the class name. It does not parse any parameter. It returns a <strong>comparator</strong> that imposes the reverse of the natural ordering (ascending order).</p> <p>It means that the array sorts elements in the ascending order by using the sort() method, after that the reverseOrder() method reverses the natural ordering, and we get the sorted array in descending order.</p> <p> <strong>Syntax:</strong> </p> <pre> public static Comparator reverseOrder() </pre> <p>Suppose, a[] is an array to be sort in the descending order. We will use the reverseOrder() method in the following way:</p> <pre> Arrays.sort(a, Collections.reverseOrder()); </pre> <p>Let&apos;s sort a string array in the descending order.</p> <p> <strong>SortStringArrayExample3.java</strong> </p> <pre> import java.util.*; public class SortStringArrayExample1 { public static void main(String args[]) { //defining an array of type String String[] countries = {&apos;Zimbabwe&apos;, &apos;South-Africa&apos;, &apos;India&apos;, &apos;America&apos;, &apos;Yugoslavia&apos;, &apos; Australia&apos;, &apos;Denmark&apos;, &apos;France&apos;, &apos;Netherlands&apos;, &apos;Italy&apos;, &apos;Germany&apos;}; //sorts array in descending order Arrays.sort(countries, Collections.reverseOrder()); //prints the sorted string array in descending order System.out.println(Arrays.toString(countries)); } } </pre> <p> <strong>Output:</strong> </p> <pre> [Zimbabwe, Yugoslavia, South-Africa, Netherlands, Italy, India, Germany, France, Denmark, America, Australia] </pre> <hr></size-1;>

Usando o método Arrays.sort()

Em Java, Matrizes é a classe definida no pacote java.util que fornece organizar() método para classificar uma matriz em ordem crescente. Ele usa Algoritmo Quicksort de pivô duplo para classificação. Sua complexidade é O(nlog(n)) . É um estático método que analisa um variedade como parâmetro e não retorna nada. Podemos invocá-lo diretamente usando o nome da classe. Aceita um array do tipo int, float, double, long, char, byte.

Sintaxe:

 public static void sort(int[] a) 

Onde a é uma matriz para ser curta.

Nota: Assim como a classe Arrays, a classe Collections também fornece o método sort() para classificar o array. Mas há uma diferença entre eles. O método sort() da classe Arrays funciona para tipos primitivos, enquanto o método sort() da classe Collections funciona para coleções de objetos, como LinkedList, ArrayList, etc.

Podemos realizar a classificação das seguintes maneiras:

circuito somador completo
    Ordem ascendenteou Ordem alfabética ou Ordem natural Ordem decrescenteou Ordem Natural Inversa

Classifique a matriz de strings em ordem crescente ou alfabética

O Ordem ascendente organiza os elementos da ordem mais baixa para a mais alta. Também é conhecido como ordem natural ou ordem alfabética .

Vamos classificar um array usando o método sort() da classe Arrays.

SortStringArrayExample2.java

 import java.util.Arrays; public class SortStringArrayExample2 { public static void main(String args[]) { //defining an array of type string String[] countries = {&apos;Wood apple&apos;, &apos;Blackberry&apos;, &apos;Date&apos;, &apos;Naseberry&apos;, &apos;Tamarind&apos;, &apos;Fig&apos;, &apos;Mulberry&apos;, &apos;Apple&apos;, &apos;Plum&apos;, &apos;Orange&apos;, &apos;Custard apple&apos;, &apos;Apricot&apos;}; //sorts string array in alphabetical order or ascending order Arrays.sort(countries); //prints the sorted string array in ascending order System.out.println(Arrays.toString(countries)); } } 

Saída:

 [Apple, Apricot, Blackberry, Custard apple, Date, Fig, Mulberry, Naseberry, Orange, Plum, Tamarind, Wood apple] 

Classifique a matriz de strings em ordem decrescente ou ordem natural reversa

Usando o método reverseOrder()

Java Coleções classe fornece o ordem reversa() método para classificar a matriz em ordem lexicográfica reversa. É um método estático, portanto podemos invocá-lo diretamente usando o nome da classe. Ele não analisa nenhum parâmetro. Ele retorna um comparador que impõe o inverso da ordenação natural (ordem ascendente).

Isso significa que o array classifica os elementos em ordem crescente usando o método sort(), depois disso o método reverseOrder() inverte a ordem natural e obtemos o array classificado em ordem decrescente.

Sintaxe:

 public static Comparator reverseOrder() 

Suponha que a[] seja um array a ser classificado em ordem decrescente. Usaremos o método reverseOrder() da seguinte maneira:

 Arrays.sort(a, Collections.reverseOrder()); 

Vamos classificar uma matriz de strings em ordem decrescente.

java senão se

SortStringArrayExample3.java

 import java.util.*; public class SortStringArrayExample1 { public static void main(String args[]) { //defining an array of type String String[] countries = {&apos;Zimbabwe&apos;, &apos;South-Africa&apos;, &apos;India&apos;, &apos;America&apos;, &apos;Yugoslavia&apos;, &apos; Australia&apos;, &apos;Denmark&apos;, &apos;France&apos;, &apos;Netherlands&apos;, &apos;Italy&apos;, &apos;Germany&apos;}; //sorts array in descending order Arrays.sort(countries, Collections.reverseOrder()); //prints the sorted string array in descending order System.out.println(Arrays.toString(countries)); } } 

Saída:

 [Zimbabwe, Yugoslavia, South-Africa, Netherlands, Italy, India, Germany, France, Denmark, America, Australia]