Ordene una matriz en orden ascendente o descendente usando Arrays.sort()
Fuente:
FreeCodeCamp Con esta publicación, aprenderá cómo ordenar una matriz en orden ascendente o descendente en Java.
En Java, usamos matrices para almacenar un conjunto de variables (con el mismo tipo de datos) en una sola variable. Pero a veces los valores almacenados en la matriz aparecen en orden aleatorio. Gracias a la clase
Arrays en Java, tenemos varias formas de manipular matrices, incluida ordenarlas. Uno de los métodos que usaremos de la clase
Arrays es el método
sort() , que ordena la matriz en orden ascendente. Para ordenar una matriz en orden descendente, utilice el método
reverseOrder() de la clase
Colecciones en Java.
Cómo ordenar una matriz en orden ascendente en Java usando Arrays.sort()
A continuación se muestra un ejemplo de cómo podemos utilizar el método
sort() para ordenar una matriz en orden ascendente.
import java.util.Arrays;
class ArraySort {
public static void main(String[] args) {
int[] arr = { 5, 2, 1, 8, 10 };
Arrays.sort(arr);
for (int values : arr) {
System.out.print(values + ", ");
}
}
}
Lo primero que hicimos en el ejemplo anterior fue importar la clase
Arrays :
import java.util.Arrays; . Esto nos da acceso a todos los métodos de la clase
Arrays . Luego creamos una matriz con números en orden aleatorio:
int[] arr = { 5, 2, 1, 8, 10 }; . Para ordenar esta matriz en orden ascendente, pasamos la matriz como parámetro al método
sort() :
Arrays.sort(arr); . Tenga en cuenta que la clase
Arrays se escribe primero antes de acceder al método
sort() usando la notación de puntos. Finalmente, creamos un bucle e imprimimos la matriz en la consola. El resultado es una matriz ordenada:
1, 2, 5, 8, 10 . Ahora hablemos de ordenar la matriz en orden descendente.
Cómo ordenar una matriz en orden descendente en Java usando Collections.reverseOrder()
Para ordenar una matriz en orden descendente, debe usar
ReverseOrder() , a la que se puede acceder desde la clase
Colecciones . Seguiremos usando
Arrays.sort(); , pero en este ejemplo se necesitarán dos parámetros: una matriz para ordenar y
Collections.reverseOrder() .
import java.util.Arrays;
import java.util.Collections;
class ArraySort {
public static void main(String[] args) {
Integer[] arr = { 5, 2, 1, 8, 10 };
Arrays.sort(arr, Collections.reverseOrder());
for (int values : arr) {
System.out.print(values + ", ");
}
}
}
Lo primero que hicimos fue importar
las clases Arrays y
Collections porque usaremos los métodos proporcionados por estas clases. Luego creamos una matriz de números en orden aleatorio:
Integer[] arr = { 5, 2, 1, 8, 10 }; . Como puede ver, usamos
Integer[] en lugar de
int[] como en el ejemplo anterior. De lo contrario se producirá un error. Para ordenar la matriz en orden descendente, hicimos esto:
Arrays.sort(arr, Collections.reverseOrder()); . El primer parámetro es una matriz
que se ordenará en orden ascendente. El segundo parámetro,
Collections.reverseOrder() , invertirá el orden de la matriz ordenada para que esté en orden descendente. Cuando se recorra e imprima, la matriz se verá así:
10, 8, 5, 2, 1 .
Conclusión
En este artículo, analizamos cómo ordenar matrices en Java: cómo se pueden ordenar en orden ascendente o descendente. Para ello podemos utilizar el método
sort() , al que se puede acceder desde la clase
Arrays . El método
sort() toma una matriz para ordenar como parámetro. Para ordenar la matriz en orden descendente, utilizamos
el método reverseOrder() proporcionado por la clase Colecciones. Se pasa como segundo parámetro al método
sort() para que la matriz ordenada se pueda reordenar en orden descendente.
Colección Java. ¿Cuál es la diferencia entre las interfaces List y Set?
Fuente:
Rrtutors List y Set son interfaces Java para ampliar la interfaz
Collection . En esta publicación, veremos las diferencias clave entre los dos, así como también cómo se pueden usar.
Diferencias entre las interfaces Set y List en Java
Definamos las diferencias clave entre
las interfaces List y
Set según los siguientes parámetros clave:
Implementación
List implementa
ArrayLists , mientras que
HashSet implementa
Set .
Indexación
Puedes usar
ListIterator para avanzar y retroceder a través de
un List , pero no a través de un Set . Utilice Iterator en su lugar (que funciona tanto con
List como con
Set ).
Orden
La interfaz
Set no admite ningún orden de conjunto en particular. Una colección del tipo
Conjunto ya está ordenada según su propia regla y no se puede ordenar así simplemente.
La lista es una lista ordenada. Los objetos se almacenan en el orden en que fueron agregados a la lista. Se accede a los elementos de la lista por índice.
Objeto nulo
La lista no tiene restricciones y admite la adición de valores nulos, mientras que
Set permite como máximo un valor nulo.
Duplicados
La lista puede contener duplicados, pero
el conjunto no. Set no permite elementos duplicados porque todos sus elementos deben ser únicos. Si inserta un elemento duplicado en
Set , se sobrescribirá el valor existente.
¿Cuándo debería utilizar Listar y Establecer?
Set es la mejor opción cuando solo necesita almacenar valores únicos, ya que para eso está diseñado. Pero si desea conservar el orden de inserción a pesar de la duplicación,
List es la mejor opción .
Conjunto de ejemplo
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
public class ListExample {
public static void main(String[] args) {
List<String> al = new ArrayList<String>();
al.add("Rohit");
al.add("Panjab");
al.add("Kamir");
System.out.println("My ArrayList Items: ");
System.out.print(al);
List<String> ll = new LinkedList<String>();
ll.add("Shobit");
ll.add("Raul");
ll.add("Ketel");
System.out.println("\n My LinkedList Items: ");
System.out.print(ll);
}
}
Lista de ejemplo
import java.util.HashSet;
import java.util.Set;
import java.util.TreeSet;
public class SetExample {
public static void main(String[] args) {
int myList[] = {60, 70, 80, 40 };
Set<Integer> dispSet = new HashSet<Integer>();
try{
for(int i = 0; i<4; i++){
dispSet.add(myList[i]);
}
System.out.println(dispSet);
TreeSet<Integer> treeset = new TreeSet<Integer>(dispSet);
System.out.println("Sorting in Asceding order:");
System.out.println(treeset);
}
catch(Exception e){
e.printStackTrace();
}
}
}
GO TO FULL VERSION