1.数组:具有相同数据类型的一组数据的集合。
一维数组
2.创建一维数组
a.数组作为对象允许使用new关键字进行内存分配,使用数组之前,必须首先定义数组变量所属类型,即声明数组。
声明数组:
语法:数组元素类型 数组名字[];
数组元素类型[] 数组名字;
注释:数组元素类型:决定了数组的数据类型,包括基本数据类型和费基本数据类型。
数组名字:为一个合法的标识符,自己去定义
[]:指明该变量是一个数组类型变量,单个"[]"表示要创建的是一维数组。
例如:int arr[];
String[] arr;
注意:a.声明数组之后还不能进行访问他的任何元素,因为声明数组只是给出了数组的名字和元素的数据类型。
b.真正使用数组还要为其分配内存空间,且分配内存空间时必须指明数组的长度。
分配内存空间:
语法:数组名字=new 数组元素类型[数组元素的个数];
注释:数组名字:已经声明的数组变量的名称;
new:对数组分配空间的关键字
数组元素的个数:指定数组中变量的个数,即数组的长度。
例如:arr=new int[5];
注意:a.在内存空间中数组的下标是从0开始的。
b.使用new关键字为数组分配内存时,数组中的各个元素都为0.
int型数组初始值为:0 boolean型初始值为:false char型初始值为:“ ”
声明数组和分配内存可以同时执行
语法:数组类型 数组名[] =new 数组元素类型[数组元素的个数]
例如:int day[]=new int[30]; //创造了一个一维数组day,制定了数组长度是30.
注意:无论哪种方法声明数组,前面的中括号都不可以填写内容。
初始化数组
数组初始化的方式是:把数据类型包括在大括号之内,中间用逗号分开数组元素的值,系统自己为数组分配一定的空间。
例如:int arr []=new int[] {1,2,3,4,5,6};
int arr []={1,2,3,4,5,6};
注意:初始化数组时可以省略new运算符和数组的长度。
二维数组
二维数组:如果一维数组中的各个元素仍然是一维数组,那么它就是一个二维数组。
二维数组的创建
语法: 数组元素类型 数组名字[][];
数组元素类型[][] 数组名字;
注释:数组元素类型:决定了数组的数据类型,包括基本数据类型和费基本数据类型。
数组名字:为一个合法的标识符,自己去定义
符号[]:[]:指明该变量是一个数组类型变量,两个"[][]"表示要创建的是二维数组。
注意:与一维数组一样,如果二维数组在声明时没有分配内存空间,同样也要使用new关键字类分配内存空间,然后才可以访问各个元素。
分配内存空间:
语法:数组元素类型 数组名字=new 数组元素类型[数组元素的个数][数组元素的个数];
注释:第一个中括号的数字是一维数组的个数,第二个中括号的数字是这些一维数组的长度。
例如:int a[][]=new int[2][4] //分配后的a拥有两个长度是4的一维数组。
二维数组的初始化:
语法:type b[][]={value1,value2,value3,value4,value5...}
注释:type:数组数据类型
b: 数组名称,一个合法的标识符
valuen:数组中各元素的值
例如:int myArr[][]={{12,10},{1,2,3}}; // myArr[1][2]=3
对数组进行排序:通过Arrays类的静态sorts()方法可以实现对数组进行排序。
语法:Arrays.sort(object)
注释:object:进行排序的数组名称
返回值:排序后的数组。
例如: int arr []={18,45,34,12,20};
Arrays.sort(arr);
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i])
}
结果为:
12
18
20
34
45
填充替换数组元素:通过Arrays类的静态方法fill()来对数组中的元素进行替换。fill方法有两种参数类型int 和 byte两种。
1.语法:fill(int a, int value )
注释:a: 要进行元素替换的数组
value:要存储数组中所有元素的值
返回值:填充后的数组。
例如:int a[]=new int[5]; //创建int型数组,长度为5
Arrays.fill(a,10); //使用10 对数组进行填充
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
原来的结果:0 0 0 0 ;
现在的结果:10 10 10 10
2.语法:fill(int[] a , int fromIndex , intfromIndex , int value)
注释:a: 要进行填充的数组
value:要存储数组中所有元素的值
返回值:替换元素后的数组。
fromIndex :要是用指定值填充的第一个元素的索引(包括)
toIndex: 要是用指定值填充的最后一个元素的索引(不包括)
例如:int a[]={45,2,10,56,14};
Arrays.fill(a,1,5,8);
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
结果为:45 8 8 8 14
复制数组:Arrays类的copyOf方法与copyOfrange方法实现对数组的复制
copyOf()复制数组到指定的长度
copyOfrange()将指定数组的指定长度复制到一个新数组中。
语法:copyOf(arr,int newlength) copyOfRange(arr,int formIndex ,int toIndex)
注释: a: 要进行复制的数组对象
返回值:复制指定位置后的数组。
fromIndex :指定开始复制数组的索引位置, fromIndex必须在0至整个数组的长度之间(包括)
toIndex: 要复制范围的最后索引位置,可以大于数组a的长度(不包括)
例如:
int a[]={45,2,10,56,14};
Arrays. copyOfRange(a,1,4)
for (int i = 0; i < a.length; i++) {
System.out.println(a[i]);
}
结果为:2 10 56 14