数组

数组的定义
相同数据类型数据的有序集合
若干元素安宅先后次序排列组合而成
每个数据成为一个数组匀速可以通过一个下标来访问他们
数组声明创建
首先必须声明数组变量才能在程序中是使用数组。
dataType[ ] arrayRefVar;
java使用new操作符来创建数组。
dataType[ ] arrayRefVar=new dataType[arraySize ];
package Array;

public class Demon1 {
public static void main(String[] args) {
int[] nums;// 1.声明了一个数组 未分配空间
//变量类型 变量名
nums = new int[8];//2.这里可以存放10个int类型的数 //长度
nums[0]= 1;
nums[1]= 18;
nums[2]= 51;
nums[3]= 31;
nums[4]= 14;
nums[5]= 15;
nums[6]= 41;
nums[7]= 1;
//3.给数组里的空间赋值

    System.out.println(nums[0]);

    int sum = 0 ;
    for (int i = 0; i < nums.length; i++) {
        //遍历数组       //数组长度↑
        sum= sum+ nums[i];

    }System.out.println(sum);   
}

}
内存分析
在声明时

int[] nums;
栈中压入一块空间为nums,接着

nums = new int[8];
在堆中开辟一块nums空间,其中有8个空位

    nums[0]= 1;
    nums[1]= 18;
    nums[2]= 51;
    nums[3]= 31;
    nums[4]= 14;
    nums[5]= 15;
    nums[6]= 41;
    nums[7]= 1;

然后通过赋值,堆中的nums空间里的8个空间都有数值。

初始化状态
package Array;

public class Demom2 {
public static void main(String[] args) {

    int[] a = {12,8,9,3,12,54,2};//静态初始化

    int[] b = new int[10];//动态初始化 只分配了空间其中的值都是0
    b[1]= 10;             //包含了默认初始化,new之后所有空间均被初始化为0

}

}
知识点在程序注释中。

数组的四个基本特点
长度确定,数组一旦被创建,他的大小就是不可改变的
元素必须相同类型
元素可以时任何数据类型,包括基本类型和引用类型
数组变量属于引用类型,数组本身就是对象,元素相当于对象的成员变量,java中对象是在堆中的(数组对象本身是在堆中的)
数组边界
小标的合法区间为 [0~长度-1],越界会报错。

数组的使用
package Array; //数组的简单使用方法,以下三种

public class Demon3 {
public static void main(String[] args) {
int[] Array = {12,2,3,4,5,6,};

    for (int i = 0; i < Array.length; i++) {
        System.out.println(Array[i]);//打印数组中的所有元素

    }

    int sum = 0 ;
    for (int i = 0; i <Array.length; i++){

        sum += Array[i];

    } System.out.println(sum);//数组中数字的和

    int max = 0;
    for (int i = 0; i < Array.length; i++) {
        if(max < Array[i]){
            max= Array[i];
        }
        

    }System.out.println("最大值为:"+ max); //数组中的最大值

    }

}

增强型for循环
输入 数组名.for 回车 ,省去了下标,适合打印输出,但不适合操作里面的元素。

package Array;

public class Demon4 {
public static void main(String[] args) {

    int[] array = {12,2,3,4,5,6,};
    for (int i : array) {  //增强型for循环
        System.out.println(i);
    }

}

}
数组的其他使用例子

package Array;

public class Demon5 {
public static void main(String[] args) {
int[] array = {1,2,3,5,6,6}; //定义一个数组
printArray(array);//打印数组array
reverse(array);//反转数组array
int[ ] reverse = reverse(array);//定义数组reverse为反转后数组
printArray(reverse);//输出reverse数组

}
       //无返回值    方法名      输入参数

public static void printArray(int[] array) { //方法:打印数组的所有元素
for (int i = 0; i < array.length; i++) {
System.out.println(array[i]);

    }
}
    public static int[] reverse(int[] array){ //方法:反转数组
        int[] result= new int[array.length];  //定义数组result,长度于输入数组相同
        for (int i = 0,j = array.length - 1; i < array.length; i++,j--) {
            result[j]=array[i]; //头尾交换

        }return result; //返回值为result数组,int[]

    }

}
多维数组
多维是数组可以看作数组的数组,即数组的元素为数组。多维数组就是数组的嵌套。

二维数组的定义

int a[] [] = new int [3] [5];
以上二位数组a可以看成一个三行五列的数组。

package Array;

public class Demon6 {
public static void main(String[] args) {
int[][] a = new int[3][5]; //多维数组
int[][] b = {{1,2},{3,4},{45,5} }; //多维数组

}

}
如何遍历二维数组中的元素

int[][] b = {{1,2},{3,4},{45,5} }; //二维数组
for (int i = 0; i < b.length; i++) { //遍历二维数组中的元素
for(int j = 0; j< b[i].length;j++){
System.out.println(b[i][j]);
}

    }
posted @ 2020-11-08 12:49  白纸黑字。  阅读(92)  评论(0编辑  收藏  举报