Arrays.sort y ordenación
Ordene arrays de tipos primitivos y objetos
Arrays.sort y ordenación es una lección gratuita de Java Academy en CoddyKit. Esta es la lección 1 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Java Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Java Academy incluye 4 lecciones en total.
Por qué usar una clase de utilidad
Los arrays de Java son objetos, pero tienen muy pocos métodos integrados. La clase java.util.Arrays cubre esa carencia con métodos auxiliares estáticos para ordenar, buscar, comparar, copiar e imprimir arrays.
- Impórtela con
import java.util.Arrays; - Todos sus métodos son
static, por lo que se invocan sobre la propia clase:Arrays.sort(...)
Ordenar un array de tipos primitivos
Arrays.sort(int[]) ordena el array directamente mediante un quicksort de doble pivote eficiente. No devuelve ningún valor; el array original se reorganiza.
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
int[] nums = {5, 2, 8, 1, 9, 3};
Arrays.sort(nums);
System.out.println(Arrays.toString(nums));
}
}Ordenar otros tipos primitivos
Existe una sobrecarga para cada tipo primitivo: double[], long[], char[] y otros. Todos ordenan de forma ascendente.
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
double[] prices = {3.5, 1.2, 9.9, 0.5};
Arrays.sort(prices);
System.out.println(Arrays.toString(prices));
}
}Ordenar un rango
Puede ordenar solo una parte de un array con Arrays.sort(array, fromIndex, toIndex). El rango incluye fromIndex y excluye toIndex.
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
int[] nums = {5, 2, 8, 1, 9, 3};
Arrays.sort(nums, 1, 4);
System.out.println(Arrays.toString(nums));
}
}Ordenar arrays de objetos
En arrays de objetos como String[], Arrays.sort utiliza el orden natural de los elementos, es decir, su implementación de Comparable. Las cadenas se ordenan lexicográficamente.
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
String[] names = {"Charlie", "Alice", "Bob"};
Arrays.sort(names);
System.out.println(Arrays.toString(names));
}
}Ordenar con un Comparator
Para sustituir el orden natural, pase un Comparator. Comparator.reverseOrder() ordena de forma descendente. Esto solo funciona con arrays de objetos, no con arrays de tipos primitivos.
import java.util.Arrays;
import java.util.Comparator;
public class Main {
public static void main(String[] args) {
String[] names = {"Charlie", "Alice", "Bob"};
Arrays.sort(names, Comparator.reverseOrder());
System.out.println(Arrays.toString(names));
}
}Comparar por longitud
Un Comparator puede comparar cualquier propiedad. Comparator.comparingInt(String::length) ordena las cadenas de la más corta a la más larga.
import java.util.Arrays;
import java.util.Comparator;
public class Main {
public static void main(String[] args) {
String[] words = {"banana", "fig", "apple"};
Arrays.sort(words, Comparator.comparingInt(String::length));
System.out.println(Arrays.toString(words));
}
}Estabilidad
La ordenación de arrays de objetos es estable: los elementos iguales conservan su orden relativo original. No se garantiza que las ordenaciones de tipos primitivos sean estables, pero, como los valores primitivos iguales son indistinguibles, no importa.
Ordenación en paralelo
Para arrays muy grandes, Arrays.parallelSort divide el trabajo entre varios núcleos de la CPU. La API es idéntica a la de sort; el resultado es el mismo, pero el proceso es más rápido con grandes volúmenes de datos.
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
int[] nums = {7, 3, 9, 1, 5, 2, 8, 4};
Arrays.parallelSort(nums);
System.out.println(Arrays.toString(nums));
}
}Un error común
Arrays.sort devuelve void. Una línea como int[] sorted = Arrays.sort(nums); no compilará. Ordene primero y después use la misma variable.
Ordenar y después imprimir
Un flujo habitual consiste en ordenar el array directamente y después imprimirlo con Arrays.toString para verificar el resultado.
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
int[] scores = {88, 72, 95, 60, 81};
Arrays.sort(scores);
System.out.println("Lowest: " + scores[0]);
System.out.println("Highest: " + scores[scores.length - 1]);
System.out.println(Arrays.toString(scores));
}
}Comprobación rápida
Compruebe sus conocimientos sobre la ordenación.
Resumen
Ha aprendido a ordenar arrays con la clase de utilidad Arrays.
Arrays.sort(arr)ordena arrays de tipos primitivos u objetos directamente y de forma ascendente.- La sobrecarga con rango
sort(arr, from, to)ordena una parte del array. - Los arrays de objetos admiten un
Comparatorpara definir un orden personalizado. parallelSortacelera la ordenación de arrays grandes.
Preguntas frecuentes
¿La lección «Arrays.sort y ordenación» es gratis?
Sí — el texto completo de «Arrays.sort y ordenación» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Java Academy, actualiza a CoddyKit PRO. El curso de Java Academy incluye 4 lecciones en total.
¿Qué aprenderé en «Arrays.sort y ordenación»?
Ordene arrays de tipos primitivos y objetos Practicas Java Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Java Academy?
No se requiere experiencia previa. Java Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 1 de 4.
¿Cuánto tiempo toma la lección «Arrays.sort y ordenación»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Java Academy?
Sí. Cada lección de Java Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Arrays.sort y ordenación
- Arrays.binarySearch
- Arrays.fill y copyOf
- Arrays.equals y toString