数组与内存控制2--数组使用

  • 一位数组
public class Cat {
    double weight;
    int age;
    public Cat(double weight,int age){
        this.weight = weight;
        this.age = age;
    } 
}
public class ArrayTest{
    public static void main(String[] agrs){
        //定义并动态初始化一个int[]数组
        int[] pos = new int[5];
        //采用循环为每个数组赋值
        for(int i=0;i<pos.length;i++){
            pos[i] = (i+1)*2;
        }
        //对于pos数组的元素来说,用起来完全等同于普通变量
        //下面既可以将数组元素的值赋给int变量,也可以将int变量的值赋值给数组元素
        int a = pos[1];
        int b = 20;
        pos[2] = b;       //-------(1)
        //定义并初始化一个Cat[]数组
        Cat[] cats = new Cat[2];
        cats[0] = new Cat(3.34,2);
        cats[1] = new Cat(3.2,2);
        //将cats数组的第一个元素的值赋值给c1
        Cat c1 = cats[0];
        Cat c2 = new Cat(4.3,3);
        //将c2的值赋值给cats数组的第二个元素
        cats[1] = c2;     //--------(2)
    }
}
View Code

  • 多维数组
public class ArrayTest{
    public static void main(String[] agrs){
        Object[] objArr = new Object[3];
        objArr[1] = new Object[2];//------(1)
        //将objArr[1]赋值给objArr2
        Object[] objArr2 = (Object[])objArr[1];//------(2)
        objArr2[1] = new Object[3];//------(3)
        //将objArr3[1]赋值给objArr3
        Object[] objArr3 = (Object[])objArr2[1];//------(4)
        objArr3[1] = new int[5];//-------(5)
        int[] iArr = (int[])objArr3[1];//------(6)
        //依次为iArr数组的每个元素赋值
        for(int i=0;i<iArr.length;i++){
            iArr[i] = i*3+1;
        }
        //直接通过objArr访问iArr数组的第3个元素
        System.out.println(((int[])((Object[])((Object[])objArr[1])[1])[1])[2]);//-(7)
    }
}
View Code

     

原文地址:https://www.cnblogs.com/wangqi327/p/4483163.html