Introducción al uso de la clase java.util.Arrays

La clase java.util.Arrays contiene varios métodos para manipular matrices, como ordenar y buscar. Esta clase también contiene una fábrica estática que permite que las matrices se vean como listas.
Nota: Todos los métodos de la clase Arrays son estáticos, por lo que se pueden llamar directamente usando el nombre de la clase al llamar.

1. Convierta la matriz en una lista
public static <T> List<T> asList(T... a)
devuelve una lista de tamaño fijo admitida por la matriz especificada. Los cambios en la lista devuelta se "escriben directamente" en la matriz, y los cambios en la matriz también se "escriben directamente" en la lista.

Ejemplo:
List<String> list = Arrays.asList("Rojo", "Verde", "Azul");

String[] array = {"Rojo", "Verde", "Azul"};
List<String> list = Arrays.asList(array);

2.二分法查找元素
public static int binarySearch(byte[] a, byte key)
public static int binarySearch(byte[] a, int fromIndex, int toIndex, byte key)
public static int binarySearch(char[] a, char key )
public static int binarySearch(char[] a, int fromIndex, int toIndex, char key)
public static int binarySearch(short[] a, short key)
public static int binarySearch(short[] a, int fromIndex, int toIndex, short key)
public static int binarySearch(int[] a, int key)
public static int binarySearch(int[] a, int fromIndex, int toIndex, int key)
public static int binarySearch(long[] a, long key)
public static int binarySearch(long[] a, int fromIndex, int toIndex, long key)
public static int binarySearch(float[] a, float key)
public static int binarySearch(float[] a, int fromIndex, int toIndex, float key)
public static int binarySearch(double[] a, double key)
public static int binarySearch( double[] a, int fromIndex, int toIndex, double key)
public static int binarySearch(Object[] a, Object key)
public static int binarySearch(Object[] a, int fromIndex, int toIndex, Object key)
public static <T > int binarySearch(T[] a, T key, Comparator<? super T> c)
public static <T> int binarySearch(T[] a, int fromIndex, int toIndex, T key, Comparator<? super T> c)
Utilice el método de búsqueda binaria para buscar el rango de la matriz especificada para obtener el objeto especificado. La matriz o rango debe clasificarse en orden ascendente de acuerdo con el comparador especificado antes de realizar esta llamada. Los resultados no están definidos si la matriz o el rango no están ordenados. Si el rango contiene más de un elemento igual al objeto especificado, no hay garantía de cuál se encuentra.

Ejemplo:
String[] array = {"Alpha", "Alpha", "Black", "Blue", "Green", "Red", "White"}; Arrays.binarySearch(array, "Blue");
// Devuelve 3
Arrays.binarySearch(array, "Brown"); // devuelve -5 (devuelve un valor negativo significa que el elemento no se encontró en la lista)
Arrays.binarySearch(array, "Alpha"); // devuelve 1

3. 复制数组
public static boolean[] copyOf(boolean[] original, int newLength)
public static byte[] copyOf(byte[] original, int newLength)
public static char[] copyOf(char[] original, int newLength)
public static short[] copyOf(short[] original, int newLength)
public static int[] copyOf(int[] original, int newLength)
public static long[] copyOf(long[] original, int newLength)
public static float[] copyOf (float[] original, int newLength)
public static double[] copyOf(double[] original, int newLength)
public static <T> T[] copyOf(T[] original, int newLength)
public static <T,U> T [] copyOf(U[] original, int newLength, Class<? extends T[]> newType)
Copia los elementos de la matriz especificada en una nueva matriz. newLength puede exceder el rango de índice de la matriz. Para índices fuera de los límites, la nueva matriz se completará con: falso, 0 o nulo (según el tipo de elemento de la matriz).

Ejemplo:
String[] matriz = {"Rojo", "Verde", "Azul"};
String[] array1 = Arrays.copyOf(array, 2); // 返回{"Rojo", "Verde"}
String[] array2 = Arrays.copyOf(array, 3); // 返回{"Rojo", "Verde", "Azul"}
String[] array3 = Arrays.copyOf(array, 4); // 返回{"Rojo", "Verde", "Azul", nulo}

4. 复制数组的指定范围
public static boolean[] copyOfRange(boolean[] original, int from, int to)
public static byte[] copyOfRange(byte[] original, int from, int to)
public static char[] copyOfRange( char[] original, int from, int to)
public static short[] copyOfRange(short[] original, int from, int to)
public static int[] copyOfRange(int[] original, int from, int to)
public static long [] copyOfRange(long[] original, int from, int to)
public static float[] copyOfRange(float[] original, int from, int to)
public static double[] copyOfRange(double[] original, int from, int to )
public static <T> T[] copyOfRange(T[] original, int from, int to)
public static <T,U> T[] copyOfRange(U[] original, int from, int to, Class<? extends T[]> newType) Copia el rango especificado de la matriz especificada en
una nueva matriz. El rango de elementos para copiar es desde hasta el elemento en el índice hasta-1. a puede exceder el rango de índice de la matriz. Para índices fuera de los límites, la nueva matriz se completará con: falso, 0 o nulo (según el tipo de elemento de la matriz).

Ejemplo:
String[] array = {"Red", "Green", "Blue"};
String[] array1 = Arrays.copyOfRange(array, 1, 1); // devuelve un array vacío
String[] array2 = Arrays. copyOfRange(array, 0, 1); // devuelve {"Rojo"}
String[] array3 = Arrays.copyOfRange(array, 1, 3); // devuelve {"Green", "Blue"}
String[] array4 = Arrays .copyOfRange(array, 1, 4); // devuelve {"Verde", "Azul", nulo}

5. Determine si dos matrices son iguales
public static boolean equals(boolean[] a, boolean[] a2)
public static boolean equals(byte[] a, byte[] a2)
public static boolean equals(char[] a, char[ ] a2)
public static boolean equals(short[] a, short[] a2)
public static boolean equals(int[] a, int[] a2)
public static boolean equals(long[] a, long[] a2)
public static boolean equals(float[] a, float[] a2)
public static boolean equals(double[] a, double[] a2)
public static boolean equals(Object[] a, Object[] a2)
si las dos matrices especificadas son mutuamente igual, devuelve verdadero. Dos arreglos se consideran iguales si contienen el mismo número de elementos y todos los pares de elementos correspondientes en ambos arreglos son iguales.

Ejemplo:
String[] array1 = {"Rojo", "Verde", "Azul"};
String[] array2 = {"Rojo", "Verde", "Azul"};
String[] array3 = {"Rojo", "Azul", "Verde"};
String[] array4 = {"Rojo", "Verde", "Azul", "Negro"};
Matrices.equals(matriz1, matriz2); // 返回true
Arrays.equals(array1, array3); // 返回false
Arrays.equals(array1, array4); // 返回falso

6. Rellene todos los elementos de la matriz con el valor especificado
public static void fill(boolean[] a, boolean val)
public static void fill(byte[] a, byte val)
public static void fill(char[] a, char val )
relleno de vacío estático público (corto [] a, valor corto)
relleno de vacío estático público (int [] a, valor int)
relleno de vacío estático público (largo [] a, valor largo)
relleno de vacío estático público (flotante [] a, float val )
public static void fill(double[] a, double val)
public static void fill(Object[] a, Object val)
asigna el valor especificado a cada elemento de la matriz especificada.

Ejemplo:
String[] array = {"Red", "Green", "Blue"};
Arrays.fill(array, "Black"); // El resultado del array es {"Black", "Black", "Black" }

7.以指定值填充数组的指定元素
public static void fill(boolean[] a, int fromIndex, int toIndex, boolean val)
public static void fill(byte[] a, int fromIndex, int toIndex, byte val)
public static void fill(char[] a, int fromIndex, int toIndex, char val)
public static void fill(short[] a, int fromIndex, int toIndex, short val)
public static void fill(int[] a, int fromIndex, int toIndex, int val)
public static void fill(long[] a, int fromIndex, int toIndex, long val)
public static void fill(float[] a, int fromIndex, int toIndex, float val)
public static void fill(doble[ ] a, int fromIndex, int toIndex, double val)
public static void fill(Object[] a, int fromIndex, int toIndex, Object val)
Asigna el valor especificado al elemento especificado de la matriz especificada. El rango de elementos para copiar es desde hasta el elemento en el índice hasta-1. Se lanza una excepción si to-1 está fuera del rango de índice.

Ejemplo:
String[] matriz = {"Rojo", "Verde", "Azul"};
Arrays.fill(array, 1, 1, "Black"); // El resultado de la matriz es {"Rojo", "Verde" , "Azul"}
Arrays.fill(array, 0, 1, "Black"); // El resultado de la matriz es {"Black", "Green", "Blue"} Arrays.fill(array,
1, 3, " Black" ); // El resultado de la matriz es {"Black", "Black", "Black"}
Arrays.fill(array, 1, 4, "Black"); // Porque 4 excede el tamaño de la matriz , se lanza una excepción

8. Devuelve el código hash de la matriz
public static int hashCode(boolean[] a)
public static int hashCode(byte[] a)
public static int hashCode(char[] a)
public static int hashCode(short[] a)
public static int hashCode(int[] a)
public static int hashCode(long[] a)
public static int hashCode(float[] a)
public static int hashCode(doble[] a)
public static int hashCode(Object[] a)
basado en el especificado El contenido de la matriz se devuelve como códigos hash. Para dos arreglos cualesquiera que cumplan Arrays.equals(a, b), sus códigos hash son los mismos.

Ejemplo:
String[] array1 = {"Rojo", "Verde", "Azul"};
String[] array2 = {"Rojo", "Verde", "Azul"};
String[] array3 = {"Rojo", "Azul", "Verde"};
Matrices.hashCode(matriz1); // 返回-2072969593
Arrays.hashCode(array2); // 返回-2072969593
Arrays.hashCode(array3); // 返回212215353

9. Ordene todos los elementos de la matriz en orden ascendente
public static void sort(boolean[] a)
public static void sort(byte[] a)
public static void sort(char[] a)
public static void sort(short[] a )
clasificación de vacío estático público (int [] a)
clasificación de vacío estático público (largo [] a)
clasificación de vacío estático público (float [] a)
clasificación de vacío estático público (doble [] a)
clasificación de vacío estático público (objeto [] a )
par La matriz especificada se ordena en orden ascendente.

Ejemplo:
String[] arreglo = {"Rojo", "Verde", "Azul"};
Arrays.sort(arreglo); // El resultado del arreglo es {"Azul", "Verde", "Rojo"}

10. Ordene los elementos especificados de la matriz en orden ascendente
public static void sort(boolean[] a, int fromIndex, int toIndex)
public static void sort(byte[] a, int fromIndex, int toIndex)
public static void sort(char [] a , int fromIndex, int toIndex)
public static void sort(short[] a, int fromIndex, int toIndex)
public static void sort(int[] a, int fromIndex, int toIndex)
public static void sort(largo[] a, int fromIndex, int toIndex)
public static void sort(float[] a, int fromIndex, int toIndex)
public static void sort(double[] a, int fromIndex, int toIndex)
public static void sort(Objeto[] a, int fromIndex, int toIndex)
ordena la matriz especificada en orden ascendente, y los elementos ordenados van desde los elementos en el índice desde fromIndex hasta toIndex-1. Se lanza una excepción si to-1 está fuera del rango de índice.

Ejemplo:
String[] matriz = {"Rojo", "Verde", "Azul", "Negro"};
Arrays.sort(array, 1, 1); // El resultado de la matriz es {"Rojo", "Verde" , "Azul", "Negro"}
Arrays.sort(matriz, 0, 1); // El resultado de la matriz es {"Rojo", "Verde", "Azul", "Negro"}
Arrays.sort(matriz, 1 , 3); // El resultado de la matriz es {"Rojo", "Azul", "Verde", "Negro"}
Arrays.sort(array, 1, 4); // El resultado de la matriz es {"Rojo", " Negro", "Verde", "Azul"}

11. Devuelve la cadena del contenido de la matriz
public static String toString(boolean[] a)
public static String toString(byte[] a)
public static String toString(char[] a
) public static String toString(short[] a)
public static String toString(int[] a)
public static String toString(long[] a)
public static String toString(float[] a)
public static String toString(double[] a)
public static String toString(Object[] a)
devuelve el especificado Una representación de cadena del contenido de la matriz.

Ejemplo:
String[] matriz = {"Rojo", "Verde", "Azul"};
Matrices.toString(matriz); // 返回[Rojo, Verde, Azul]
 

Supongo que te gusta

Origin blog.csdn.net/chenzhengfeng/article/details/129625661
Recomendado
Clasificación