logo

Cómo ordenar una matriz de cadenas en Java

En programación, clasificación es importante porque pone elementos de una formación en un orden determinado. El orden ampliamente utilizado es orden alfabético o orden natural . La clasificación se utiliza para canonicalizar (el proceso de convertir datos en el formato estándar) datos y para producir un formato legible por humanos. En esta sección aprenderemos cómo ordenar una matriz de cadenas en Java usando lógica definida por el usuario y Matrices. clasificar() método

Hay dos formas de ordenar una matriz de cadenas en Java:

  • Usando Usuario definido Lógica
  • Utilizando el matrices.sort() Método

Usando lógica definida por el usuario

Podemos ordenar una matriz de cadenas comparando cada elemento con el resto de elementos. En el siguiente ejemplo, hemos hecho lo mismo. Hemos utilizado dos bucles for. El bucle for interno (segundo) evita las repeticiones en comparación. Si la condición (countries[i].compareTo(countries[j])>0) es verdadera que 0, realiza el intercambio y ordena la matriz.

cadena java indexof

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 el método Arrays.sort()

En Java, matrices es la clase definida en el paquete java.util que proporciona clasificar() Método para ordenar una matriz en orden ascendente. Usa Algoritmo Quicksort de doble pivote para clasificar. Su complejidad es O(n iniciar sesión(n)) . Es un estático método que analiza un formación como parámetro y no devuelve nada. Podemos invocarlo directamente usando el nombre de la clase. Acepta una matriz de tipo int, float, double, long, char, byte.

Sintaxis:

 public static void sort(int[] a) 

Dónde a es una matriz para ser breve.

Nota: Al igual que la clase Arrays, la clase Collections también proporciona el método sort() para ordenar la matriz. Pero hay una diferencia entre ellos. El método sort() de la clase Arrays funciona para tipos primitivos, mientras que el método sort() de la clase Collections funciona para objetos Collections, como LinkedList, ArrayList, etc.

Podemos realizar la clasificación de las siguientes maneras:

gráfico de asignación de recursos
    Orden ascendenteo Orden alfabetico o Orden natural Orden descendienteo Orden natural inverso

Ordenar matriz de cadenas en orden ascendente u orden alfabético

El orden ascendente organiza los elementos de menor a mayor orden. También se le conoce como orden natural o orden alfabetico .

Ordenemos una matriz usando el método sort() de la clase 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)); } } 

Producción:

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

Ordenar matriz de cadenas en orden descendente o en orden natural inverso

Usando el método ReverseOrder()

Java Colecciones clase proporciona la orden inverso() método para ordenar la matriz en orden lexicográfico inverso. Es un método estático, por lo que podemos invocarlo directamente usando el nombre de la clase. No analiza ningún parámetro. Devuelve un comparador que impone el orden inverso al natural (orden ascendente).

Significa que la matriz ordena los elementos en orden ascendente utilizando el método sort(), luego de eso el método reverseOrder() invierte el orden natural y obtenemos la matriz ordenada en orden descendente.

Sintaxis:

 public static Comparator reverseOrder() 

Supongamos que a[] es una matriz que se ordenará en orden descendente. Usaremos el método ReverseOrder() de la siguiente manera:

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

Ordenemos una matriz de cadenas en orden descendente.

random no generator in java

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

Producción:

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