Día 20 (análisis de memoria, tres inicializaciones de matrices, cuatro características básicas de matrices, límites de matrices, uso de matrices)

Análisis de memoriaInserte la descripción de la imagen aquí

Inserte la descripción de la imagen aquí

Ver imagen:

Tres tipos de inicialización de matriz

Inicialización estática

int[] a = {
    
    1,2,3};
Man[] mans = {
    
    new Man(1,1),new Man(2,2)};

Inicialización dinámica

int[] a = new int[2];
a[0]=1;
a[1]=2;

Inicialización predeterminada de la matriz

  • Array es un tipo de referencia y sus elementos son equivalentes a las variables de instancia de la clase, por lo tanto, una vez que se asigna espacio para la matriz, cada elemento en él se inicializa implícitamente de la misma manera que las variables de instancia.
public class A0122Array {
    
    
    public static void main(String[] args) {
    
    
    //静态初始化,创建+赋值
    int nums[] = {
    
    1,2,3,4,5};
    System.out.println(nums[2]);
    //动态初始化,包含默认初始值
    //int[] nums1;
    //nums1 =new int[5];
    int[] nums1 = new int[5];
    nums1[0]=2;
    nums1[1]=4;
    nums1[2]=6;
    nums1[3]=8;
    System.out.println(nums1[3]);
    System.out.println(nums1[4]);//有默认初始值 int的初始值为0
    }
}
run:
3
8
0

Cuatro características básicas de las matrices:

Inserte la descripción de la imagen aquí

Límite de matriz

Inserte la descripción de la imagen aquí

public class A0122ArrayBounds {
    
    
    public static void main(String[] args) {
    
    
    int[] a=new int[5];
        System.out.println(a[5]);
    }
}
run:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5
	at com.lingxiang.data.January.A0122ArrayBounds.main(A0122ArrayBounds.java:6)

Process finished with exit code 1

Uso de matrices

En bucle

public class A0122ArrayDemo1 {
    
    
    public static void main(String[] args) {
    
    
    //打印所有元素
    int[] a = new int[5];
    a[0]=1;
    a[1]=2;
    a[2]=3;
    a[3]=4;
    a[4]=5;
        for (int i = 0; i <a.length; i++) {
    
    
            System.out.println(a[i]);
        }
        System.out.println("=================");
    //计算所有元素的总和
        int sum =0;
        for (int i = 0; i < a.length; i++) {
    
    
         sum += a[i];   // sum=sum+a[i]; 和 sum += [i];是一样的意思
        }
        System.out.println(sum);
        System.out.println("=================");
    //查找最大的数
        int max =a[0];
        for (int i=1;i<a.length;i++){
    
    
            if (a[i]>max){
    
    max=a[i];}
        }
        System.out.println(max);
    }
}
run:
1
2
3
4
5
=================
15
=================
5

Para cada bucle

public class A0122ArrayDemo2 {
    
    
    public static void main(String[] args) {
    
    
        int[] a = {
    
    1,2,3,4,5};
        //JDK1.5之后开始 没有下标
        for (int i : a) {
    
    
            System.out.println(i);
        }
    }
}

Matriz como entrada de método

Matriz como valor de retorno

public class A0122ArrayDemo2 {
    
    
    public static void main(String[] args) {
    
    
        int[] a = {
    
    1, 2, 3, 4, 5};
        //JDK1.5之后开始 没有下标
        for (int i : a) {
    
    
            System.out.println(i);
        }
        System.out.println("==============");
        int[] b = {
    
    2, 4, 6, 8};
        printarray(b);
        System.out.println("==============");
        int[] reverseb = reverse(b);
        printarray(reverseb);
        System.out.println("==============");
        int[] reverse1b = reverse1(b);
        printarray(reverse1b);
    }

    //打印数组元素的方法
    public static void printarray(int[] b) {
    
    
        for (int i = 0; i < b.length; i++) {
    
    
            System.out.print(b[i] + "\t");
        }
        System.out.println();
    }

    //反转数组 写法一
    public static int[] reverse(int[] b) {
    
    
        int[] c = new int[b.length];
        for (int i = 0; i < b.length; i++) {
    
    
            c[b.length - i - 1] = b[i];
        }
        return c;
    }

    //反转数组 写法二
    public static int[] reverse1(int[] b) {
    
    
        int[] c = new int[b.length];
        for (int i = 0,j=c.length-1; i < b.length; i++,j--) {
    
    
            c[j]=b[i];
        }
        return c;
    }
}
run:
1
2
3
4
5
==============
2	4	6	8	
==============
8	6	4	2	
==============
8	6	4	2	

Supongo que te gusta

Origin blog.csdn.net/SuperrWatermelon/article/details/113014350
Recomendado
Clasificación