数组

数组

数组的定义

  1. 相同数据类型数据的有序集合
  2. 若干元素安宅先后次序排列组合而成
  3. 每个数据成为一个数组匀速可以通过一个下标来访问他们

数组声明创建

  1. 首先必须声明数组变量才能在程序中是使用数组。
  dataType[ ] arrayRefVar;
  1. 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

    }
}

知识点在程序注释中。

数组的四个基本特点

  1. 长度确定,数组一旦被创建,他的大小就是不可改变的
  2. 元素必须相同类型
  3. 元素可以时任何数据类型,包括基本类型和引用类型
  4. 数组变量属于引用类型,数组本身就是对象,元素相当于对象的成员变量,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-05 18:11  SshadowHeart  阅读(64)  评论(0)    收藏  举报