JAVA基础学习之路(五)数组的定义及使用

时间:2022-08-31 21:30:03

什么是数组:就是一堆相同类型的数据放一堆(一组相关变量的集合)

定义语法:

  1. 声明并开辟数组

    数据类型 数组名[] = new 数据类型[长度];

  1. 分布完成
  • 声明数组:数据类型 数组名 [] = null;
  • 开辟数组:数组名 = new 数据类型[长度];
public class test2 {
    public static void main(String args[]) {
        int arr[] = new int[3];
        arr[0] = 1;
        arr[1] = 2;
        arr[2] = 3;
        for(int i=0;i<3;i++) {
            System.out.println(arr[i]);
        }
    }
}

 

 

内存分析:

  1. 声明并开辟数组

JAVA基础学习之路(五)数组的定义及使用

 

2.分布完成

JAVA基础学习之路(五)数组的定义及使用

 

数组内存引用

 

数组是一个引用数据类型

public class test2 {
    public static void main(String args[]) {
        int arr[] = new int[3];
        arr[0] = 1;
        arr[1] = 2;
        arr[2] = 3;
        int arr_tem[] = arr;
        arr_tem[0] = 100;
        for(int i=0;i<3;i++) {
            System.out.println(arr[i]);
        }
    }
}
//输出为     
       100
2 3

 

JAVA基础学习之路(五)数组的定义及使用

 

 

以上方法都是数组的动态初始化,都是为数组先开辟空间,之后再赋值。这里,就会联系到之前学习的构造方法了(再实例化对象时产生默认值),下面将介绍数组的两种静态初始化方法。

简单方法:int arr[] = {值,值,值......}   //尽量不要用

完整方法:int arr[] = new int[] {值,值,值......}

public class test2 {
    public static void main(String args[]) {
        int arr[] = new int[] {1,2,3};
        int arr_tem[] = arr;
        arr_tem[0] = 100;
        for(int i=0;i<3;i++) {
            System.out.println(arr[i]);
        }
    }
}

 

数组操作方法:

  1. System.arraycopy(源数组,源数组索引,目标数组,目标数组索引,长度)
public class test2 {
    public static void main(String args[]) {
        int arr_1[] = new int[] {1,2,3,4,5,6,7 };
        int arr_2[] = new int[] {11,22,33,44,55,66,77 };
        System.arraycopy(arr_1, 2, arr_2, 2, 3);//将数组2替换为11,22,3,4,5,66,77
        for(int i=0; i<arr_2.length; i++) {
            System.out.println(arr_2[i]);
        }
    }
    
        
}

 

  1. java.util.Arrays.sort()
public class test2 {
    public static void main(String args[]) {
        int arr[] = new int[] {1,3,2,9,5,7,6,4};
        java.util.Arrays.sort(arr);
        for(int i=0; i<arr.length; i++) {
            System.out.println(arr[i]);
        }
    }    
}