Java中数组基础

Java中数组基础

数组可以存放多个同一类型的数据,数组也可以认为是一种数据类型,是引用类型。

数组的初始化

动态初始化:数据类型 数组名[] =new 数据类型[大小]

int a[]=new int[5];创建了一个数组,名字为a,可以存放五个数据,数据可以后面定义。可以发现当定义之后默认为int类型数组每个数默认为0,自己可以采用循环的方式对其进行重新定义。

1
2
3
4
5
6
7
8
9
10
11
12
import java.util.Arrays;

public class Test {
public static void main(String [] args){
int []array=new int[5];
System.out.println(Arrays.toString(array));
for (int i=0;i<array.length;i++){
array[i]=i;
}
System.out.println(Arrays.toString(array));
}
}

image-20220407180622715

静态初始化:数据类型 数组名[]={元素1,元素2,元素3…..};

int []array={1,2,3,4,5,6},表示int类型的数组,名称为array,包含1,2,3,4,5,6这六个元素,数组的大小不可以改变,但是数组的每一个值可以重新赋值改变。

1
2
3
4
5
6
7
8
9
10
11
12
import java.util.Arrays;

public class Test {
public static void main(String [] args){
int []array={1,2,3,4,5,6,7};
System.out.println(Arrays.toString(array));
for (int i=0;i<array.length;i++){
array[i]=i+10;
}
System.out.println(Arrays.toString(array));
}
}

image-20220407180652678

数组使用细节

  1. 数组是多个相同的类型数据的集合,实现对这些数据的统一管理。(如果为不同类型,则数组类型的精度要可以大于数组包含的值的精度)

    1
    double []array={1.1,12,15};可以   int []array={1.1,12,15};不可以
  2. 数组创建后,如果没有赋值,则都是有默认值的。注意:boolean默认false,String默认为null,char默认为img点击并拖拽以移动

  3. 数组的下标都是从0开始的

  4. 数组的下表不要出现越界异常。

  5. 数组属于引用数据类型,数组型数据的对象为object。

数组拷贝

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import java.util.Arrays;

public class Test {
public static void main(String[] args) {
int []arr=new int[]{1,2,3,4,5,6,7,8,9};
//现在我们需要拷贝这个数组
int []arr1= Arrays.copyOf(arr,arr.length);
System.out.println(Arrays.hashCode(arr));
System.out.println(Arrays.hashCode(arr1));

//同样我们现在需要扩展数组
arr=Arrays.copyOf(arr,arr.length*2);
System.out.println(Arrays.hashCode(arr));
System.out.println(Arrays.hashCode(arr1));
System.out.println(arr.length);


}
}

image-20220706201240049

从上述的代码中我们可以发现,在拷贝之后,如果是数组大小相同,那么地址不会改变,但是如果改变了,地址也会改变。

main函数中数组作用

image-20220706202103530

我们尝试输出这个,发现会在我们运行的时候,在后面添加一些函数,会自动加入args这个数组里面,用于接收命令行上指定的参数