¿Qué se puede hacer con Arrays? Sunflower Collection?

Inserte la descripción de la imagen aquí

Prefacio

Esta clase contiene varios métodos para manipular matrices (como ordenar y buscar). Esta clase también contiene una fábrica estática, lo que permite que las matrices se traten como listas. Si la referencia de matriz especificada es nula, los métodos de esta clase arrojan NullPointerException a menos que se indique lo contrario. Una breve descripción de las realizaciones incluidas en los archivos incluidos en dichos métodos. Estas descripciones deben considerarse instrucciones de implementación, no parte de la especificación. Siempre que se cumpla la especificación en sí, el implementador puede reemplazar otros algoritmos a voluntad.
(Por ejemplo, el algoritmo utilizado por sort (Object []) no es necesariamente sort (Object []), pero debe ser estable).


1. ¿Qué son las matrices?

La clase Arrays se encuentra en el paquete java.util. Contiene principalmente varios métodos para manipular matrices. De hecho, sabemos que otras colecciones como List y Set proporcionan muchos métodos, pero las matrices no pertenecen al sistema de colección. se identifica con [], no proporciona ningún método para que opere el usuario, solo se proporciona un atributo de longitud.

En segundo lugar, siga los pasos

Método común

El código fuente dice:

asList(T... a) 
binarySearch( Object[] a, Object key)
copyOf(Object[] original, int newLength) 
copyOfRange(Object[] original, int from, int to) 
deepEquals(Object[] a1, Object[] a2)
deepHashCode(Object a[]) 
deepToString(Object[] a) 
deepToString(Object[] a, StringBuilder buf, Set<Object[]> dejaVu) {
    
    
equals(Object[] a, Object[] a2)
fill(Object[] a, Object val)
hashCode(char a[])
legacyMergeSort(Object[] a) 
parallelPrefix(Object[] array, Object op)
parallelSetAll(Object[] array, IntToObjectFunction generator) 
parallelSort(Object[] a) 
setAll(Object[] array, IntToObjectFunction generator)
sort(Object[] a)
spliterator(Object[] array) 
spliterator(Object[] array, int startInclusive, int endExclusive)
stream(Object[] array)
stream(Object[] array, int startInclusive, int endExclusive) 
swap(Object[] x, int a, int b)
toString(Object[] a)

Ejemplo de código:
método asList (): convierte una matriz o un parámetro variable en una lista

public static void asList(){
    
    
        String [] arr={
    
    "n","a","n"};
        List<String> list = Arrays.asList(arr);
        List<String> list1 = Arrays.asList("b","a","o");
        System.out.println(list);
        System.out.println(list1);
        /**
         * [n, a, n]
         * [b, a, o]
         */
    }

Ordene la matriz en orden ascendente:

public static void sort(){
    
    
        int [] arr ={
    
    9,5,4,8,3,-4};
        Arrays.sort(arr);
        for (int i : arr){
    
    
            System.out.print(i+" ");
        }
        //-4 3 4 5 8 9
    }

sort (int [] a, int fromIndex, int toIndex) ordena el rango especificado de la matriz en orden ascendente.

public static void sort1(){
    
    
        int [] arr ={
    
    9,5,4,8,3,-4};
        Arrays.sort(arr,0,3);
        for (int i : arr){
    
    
            System.out.print(i+" ");
            //4 5 9 8 3 -4 
        }
    }

Arrays.sort (nums, new Comparator ()) El uso de Comparator para especificar la dirección de clasificación depende principalmente del método especificado por el método comparado reescrito

public void sort() {
    
    
    Integer[] nums = {
    
    2, 5, 0, 4, 6, -10};
    Arrays.sort(nums, new Comparator<Integer>() {
    
    
        @Override
        public int compare(Integer o1, Integer o2) {
    
    
            return o1.compareTo(o2);
        }
    });
    for (int i : nums) {
    
    
        System.out.print(i + " ");
    }
}
// 输出结果
-10 0 2 4 5 6 

fill (int [] a, int val) Asigna el valor int especificado a cada elemento de la matriz int especificada y reemplaza todos los elementos de la matriz con val

 public static void fill(){
    
    
        int [] arr ={
    
    9,5,4,8,3,-4};
        Arrays.fill(arr,2);
        for (int i : arr){
    
    
            System.out.print(i+" ");
            //2 2 2 2 2 2 
        }
    }

fill (int [] a, int fromIndex, int toIndex, int val) asigna el valor int especificado a cada elemento del rango especificado de la matriz int especificada.

public static void fill1(){
    
    
        int [] arr ={
    
    9,5,4,8,3,-4};
        Arrays.fill(arr,2,5,200);
        for (int i : arr){
    
    
            System.out.print(i+" ");
            //9 5 200 200 200 -4 
        }
    }

toString (int [] a) devuelve la representación de cadena del contenido de la matriz especificada.

 public static void tostring(){
    
    
        int [] arr ={
    
    9,5,4,8,3,-4};
        //[I@6108b2d7
        System.out.println(arr);
        //[9, 5, 4, 8, 3, -4]
        System.out.println(Arrays.toString(arr));
    }

deepToString (matrices Object [] []) devuelve la forma de cadena de una matriz multidimensional

@Test
public void deepToString() {
    
    
    int[][] nums = {
    
    {
    
    2, 5, 0, 4, 6, -10},{
    
    2, 5, 0, 4, 6, -10}};
    System.out.println(nums);
    System.out.println(Arrays.deepToString(nums));
}
// 输出结果
[[I@587c290d
[[2, 5, 0, 4, 6, -10], [2, 5, 0, 4, 6, -10]]

binarySearch (Object [] a, Object key)
utiliza la búsqueda binaria para encontrar una clave específica. Si encuentra el subíndice, devuelve -1. Cabe señalar que la búsqueda binaria requiere que la entrada esté ordenada

 public static void binarysearch(){
    
    
        //无序输出
        int a =Arrays.binarySearch(new int[] {
    
    1,2,3,9,5}, 4);

        int b=Arrays.binarySearch(new int[] {
    
    1,2,3,4,5}, 4);
        System.out.println(a);//-4
        
        
        System.out.println(b);//3
    }

copyOf (int [] original, int newLength) copia la matriz especificada con ceros, truncada o rellenada (si es necesario) para que la copia tenga la longitud especificada.

public void copyOfRange() {
    
    
    int[] ints = Arrays.copyOfRange(new int[]{
    
    9, 8, 7,6,5,4,3,2,1}, 0, 5);
    System.out.println(Arrays.toString(ints));
}
// 输出结果
[9, 8, 7, 6, 5]

ParallelPrefix utiliza la función de cálculo paralelo y cálculo de matrices, ya que es una interfaz funcional, se puede utilizar como expresiones lambda.

public void parallelPrefix() {
    
    
    int[] ints = {
    
    1, 2, 3, 4, 5};
    //K表示数组第一个值,也就是0号索引,V代表K的下一个索引值,两个索引的值相加
    Arrays.parallelPrefix(ints,(K,V)-> K+V);
    //输出为[1, 3, 6, 10, 15]:流程是1和2相加为3,3和3相加为6,6和4相加为10...以此往后类推
    System.out.println(Arrays.toString(ints));

    int[] Ints = {
    
    5,4,3,2,1,0};
    //从1号索引到5号索引之间开始相加数值
    Arrays.parallelPrefix(Ints,1,5,(K,V) -> K + V);
    System.out.println(Arrays.toString(Ints)); //输出为[5, 4, 7, 9, 10, 0]

}

paralelSort utiliza el algoritmo de ordenación paralela + combinación de ordenación para ordenar la matriz

public void parallelSort() {
    
    
    int[] ints = {
    
    2, 3, 4, 5, 1};
    Arrays.parallelSort(ints);
    //输出为:[1, 2, 3, 4, 5]
    System.out.println(Arrays.toString(ints));
    
    int[] Ints = {
    
    2, 3, 4, 5, 1,6,8,7};
    //从1到7号索引之间进行排序
    Arrays.parallelSort(Ints,1,7);
    //输出为:[2, 1, 3, 4, 5, 6, 8, 7]
    System.out.println(Arrays.toString(Ints));
}

Inserte la descripción de la imagen aquí
Tiempo de tonterías:

Si el cliente piensa que la comida es apropiada, ¡puedes dar un me gusta gratis! ¡Gracias! ¡Oficial caminante lento! Se recomienda empacar y recolectar y volver la próxima vez. Compre Xiaoer QQ: 309021573, ¡bienvenido a acosar!

Supongo que te gusta

Origin blog.csdn.net/AzirBoDa/article/details/112920830
Recomendado
Clasificación