La descripción de la API de Java de la clase de matrices es: esta clase contiene varios métodos utilizados para manipular matrices (como clasificar y buscar).
1. Ordena matrices de tipos de datos básicos
ilustrar:
(1) sort () en la clase de matrices usa "método de clasificación rápida sintonizada";
(2) Por ejemplo, las matrices de tipos de datos base como int [], doble [], char [], etc., la clase de matrices solo proporciona la disposición de orden ascendente predeterminada y no proporciona el método de disposición de orden descendente correspondiente.
(3) Para ordenar las matrices de tipos básicos en orden descendente, debe convertir estas matrices en matrices de clase encapsuladas correspondientes, como entero [], doble [], carácter [], etc., para clasificar estas matrices de clase. (De hecho, es mejor ordenar primero el orden ascendente y convertirlo en el orden usted mismo).
Ordenar matrices en orden ascendente predeterminado
Prototipo de funciones: static void sort (int [] a) Ordene la matriz de tipo int especificada en orden ascendente.
static void sort (int [] a, int fromindex, int toindex) ordene el rango especificado de una matriz de tipo int en números ascendentes.
Ejemplo de código:
La copia del código es la siguiente:
importar java.util.arrays;
Public Class ArraySt_11 {
Public estático void main (args de cadena [])
{
int [] a = {1,4, -1,5,0};
Matrizs.sort (a);
// El contenido de la matriz a [] se convierte en {-1,0,1,4,5}
para (int i = 0; i <a.length; i ++)
System.out.print (a [i]+"");
}
}
2. Ordene los datos de los tipos de datos compuestos
Prototipo de función:
(1) Ordena pública estática <t> void (t [] a, comparador C) Ordene la matriz de objeto especificada de acuerdo con el orden generado por el comparador especificado.
(2) Ordena pública estática <t> void (t [] a, int fromindex, int toindex, comparador c) Ordene el rango especificado de la matriz de objeto especificada de acuerdo con el orden generado por el comparador especificado.
Nota: Estos dos algoritmos de clasificación son el algoritmo de clasificación de "fusión ajustada".
Ejemplo de código:
La copia del código es la siguiente:
Paquete AA;
importar java.util.arrays;
importar java.util.comparator;
Arrasort de clase pública {
Punto [] arr;
Arraysort () {
arr = nuevo punto [4];
para (int i = 0; i <4; i ++)
arr [i] = new Point ();
}
public static void main (string [] args) {
Arraysort sort = new ArraySort ();
sort.arr [0] .x = 2; sort.arr [0] .y = 1;
sort.arr [1] .x = 2; sort.arr [1] .y = 2;
sort.arr [2] .x = 1; sort.arr [2] .y = 2;
sort.arr [3] .x = 0; sort.arr [3] .y = 1;
Arrays.sort (sort.arr, nuevo myComprator ());
para (int i = 0; i <4; i ++) // resultado de clasificación de salida
System.out.println ("("+sort.arr [i] .x+","+sort.arr [i] .y+")");
}
}
punto de clase {
int x;
int y;
}
// Comparador, las coordenadas x se clasifican de pequeña a grande;
CLASS MYCOMPRATOR implementa el comparador {
public int Compare (Object Arg0, Object Arg1) {
Punto t1 = (punto) arg0;
Punto t2 = (punto) arg1;
if (t1.x! = t2.x)
return t1.x> t2.x?
demás
regresar t1.y> t2.y?
}
}