JAVA语法一:数组初认识

发布于:2023-02-01 ⋅ 阅读:(680) ⋅ 点赞:(0)

目录

 

1.数组的定义

2.数组的创建和初始化-------------有三种方法

2.1默认值

        2.2:数组初始化函数

3:数组中的元素访问

3.1:可以按照数组下标进行访问-------(fori函数)

3.2:无法查看数组下标进行访问----(foreach函数)

4.数组是引用类型

 5:数组的应用

6.数组的拷贝

6.1:Arrays.copyof(数组名,长度)

6.2:System.arrayscopy--局部拷贝

7.二维数组

7.1:二维数组的定义

7.2:二维数组的打印

7.2.1:fori打印

 7.2.2:foreach打印


 

1.数组的定义

1.数组存放的元素类型相同。

2.数组的空间是连在一起的。

3.每个空间有自己的标号,既数组的下标,从零开始。

2.数组的创建和初始化-------------有三种方法

int:表述数组中存放的元素类型。

int[]:表示数组的类型---。

1.int [] arr=new int [10]: 动态,创建一个存放十个整形的数组。但未初始化,会有默认值。

2.int [] arr={1,2,3,4,5}:静态,数组初始化木有指定长度,根据元素个数确定长度。

3.int[] arr=new int[]{1,2,3,4,5}:根据元素个数来开辟空间

2.1默认值

类型 默认值
byte 0

short

0
int 0
long 0
float 0.0f
double 0.0
char /u0000
boolean

false

 

 

 

 

 

 

 

 

 

 

2.2:数组初始化函数

d8e54a0655514a0d96a8a7c1614112dc.png

用例:

881e8f6d09954b1cad239af0a6220b78.png 

3:数组中的元素访问

3.1:可以按照数组下标进行访问-------(fori函数)

  public static void main(String[] args) {
        int [] arr={9,8,7,6,5,4,3,2,1,0};
        for (int i = 0; i <arr.length ; i++) {
            //arr.length 计算数组的长度
            System.out.print(arr[i]+" ");
            //println打印自动换行
            //printf("%d",arr[i]),%d是数据类型
        }
    }

3.2:无法查看数组下标进行访问----(foreach函数)

for (int x:arr ){//int x是数组中元素类型,arr是想查询的数组名
            System.out.print(x+" ");
        }

4.数组是引用类型

应用类型变量:一般称为对象的引用,其空间中存储的是对象所在空间的地址

940889282c8e484ea2eb99dd461e6ba1.png

 5:数组的应用

 public static void fun1(int[] arry) {
        arry = new int[10];
    }

    public static void fun2(int[] arry1) {
        arr[0] = 99;
    }

    public static void main(String[] args) {
        int arr[] = {1, 2, 3, 4, 5};
        int arr1[] = {1, 2, 3, 4, 5};
        fun1(arr);
        System.out.println(Arrays.toString(arr));//1
        //Arrays.toString 将数组用字符串的形式打印出来
        fun2(arr1);
        System.out.println(Arrays.toString(arr1));//2

    }

猜一猜,1和2 的输出分别是什么。

becdc35bad774d0798ae05a9b69d23d0.png

 这道题也说明: 形参指向的改变不会影响实参的指向。

6.数组的拷贝

6.1:Arrays.copyof(数组名,长度)

public static void main(String[] args) {
        int [] arr={1,2,3,4,5,6};
        int [] arr1=new int [arr.length];
        arr1=Arrays.copyOf(arr,arr.length);
        System.out.println(Arrays.toString(arr1));
    }

6.2:System.arrayscopy--局部拷贝

System.arrayscopy(int [] arr,int star,int[] arr,int end,lenth)

第一个参数:是要被复制的数组名。

第二个参数:要从哪里开始复制的数组下标。

第三个参数:复制到的数组名。

第四个参数:要复制到的数组下标。

第五个参数:复制的元素个数。
 

public static void main(String[] args) {
        int [] arr={1,2,3,4,5,6};
        int [] arr1=new int [5];
        System.arraycopy(arr,3,arr1,2,2);
        System.out.println(Arrays.toString(arr1));
    }

6.3:.clone()----克隆

 public static void main(String[] args) {
        int[] arr = {1, 2, 3, 4, 5, 6};
        int[] arr1 = new int[arr.length];
        arr1 = arr.clone();//arr是你要克隆的数组
        System.out.println(Arrays.toString(arr1));
    }

上面我们讲的都是一维数组,上面讲的函数都需要导入import.java.util.Arrays.

7.二维数组

二维数组是特殊的一维数组。

7.1:二维数组的定义

1.int [] [] array=new int [2] [3];

int [] [] array=new int [] [] {{1,2,3},{4,5,6}};

int [] [] array={{1,2,3},{4,5,6}};

注意:在java中二维数组定义不可省略行,但可以省略列。

7.2:二维数组的打印

7.2.1:fori打印

 public static void main(String[] args) {
        int arr[][] = {{1, 2, 3}, {4, 5, 6}};
        for (int i = 0; i < arr.length; i++) {
            for (int j = 0; j < arr[i].length; j++) {
                System.out.print(arr[i][j] + " ");
            }
            System.out.println();
        }
    }

是不是看到这里有点不懂?

42d73daf65c1466794c39d598aec9893.png

 7.2.2:foreach打印

public static void main(String[] args) {
        int arr[][] = {{1, 2, 3}, {4, 5, 6}};
        for (int[] arr1 : arr) {
            for (int x : arr1) {
                System.out.print(x + " ");
            }
            System.out.println();
        }
    }

第一个foreach循环,里面是数组类型,从二维数组。

第二个foreach循环,里面是整型,从int arr[]