数组
数组
数组是相同类型数据的有序集合,可以通过下标进行访问。
数组的声明
datatype[] arrayRefVar;
//例如:声明一个int型数组array1
int[] array1;
数组的创建
datatype[] arrayRefVar = new datatype[arraySize];
//例如:创建一个有10个int型数据的数组array1
int[] array1 = new int[10];
数组的赋值
package Array;
public class arrayDemo01 {
public static void main(String[] args) {
int[] array1=new int[3];
//数组下标的合法区间为:0~length-1
array1[0]=3;
//将3赋值给第一个位置
array1[1]=4;
//将4赋值给第二个位置
array1[2]=5;
//将5赋值给第三个位置
//利用发for循环进行遍历,打印出数组array1的各个元素
for (int i = 0; i < array1.length; i++) {
System.out.println(array1[i]);
}
}
}
数组的四个基本特点
- 其长度是确定的,一旦被创建,它的大小就是不可以改变的;
- 起元素必须是相同类型的,不允许出现混合类型;
- 数组中的元素可以是任何数据类型,包括基本类型和引用类型;
- 数组变量属于引用类型,数组也可以看成是对象,数组中的每个元素相当于该对象的成员变量。
数组的三种初始化方式
静态初始化
int[] a={1,3,5,7,9};
//在数组创建时就进行赋值
动态初始化
int[] a = new int[2];
a[0]=1;
a[1]=2;
//数组创建后,利用下标进行赋值
默认初始化
数组属于引用类型,它的元素相当于实例变量,因此一经分配空间,其中的每个元素也被按照实例变量同样的方式被隐式初始化。
int类型的数组,未经赋值的元素默认值为0。
数组的使用
普通for循环
package Array;
public class arrayDemo02 {
public static void main(String[] args) {
//定义一个数组,并进行初始化赋值
int[] arrays = {1,3,5,7,9,11};
//利用for循环进行遍历,打印全部的数组元素
for(int i=0;i<arrays.length;i++){
System.out.println(arrays[i]);
}
//数组各个元素求和
int sum=0;
for (int i = 0; i < arrays.length; i++) {
sum+=arrays[i];
}
System.out.println("sum="+sum);
//数组各个元素取最大值
int max=arrays[0];
for (int i = 1; i <arrays.length ; i++) {
if(max<arrays[i]){
max=arrays[i];
}
}
System.out.println("max="+max);
}
}
for-each循环
package Array;
public class arrayDemo03 {
public static void main(String[] args) {
int[] arrays={2,3,4,5,6,7};
//可以直接遍历数组,但是没有下标,无法取出元素
//array代表取出的元素值,arrays代表数组
for (int array : arrays) {
System.out.println(array);
}
}
}
数组作方法入参
package Array;
public class arrayDemo04 {
public static void main(String[] args) {
int[] a={2,4,6,8,10};
//调用方法printArray打印数组元素
printArray(a);
}
//定义一个方法:打印一个数组
public static void printArray(int[] arrays){
for (int i = 0; i <arrays.length ; i++) {
System.out.print(arrays[i]+" ");
}
}
}
数组作为返回值
package Array;
public class arrayDemo05 {
public static void main(String[] args) {
int[] arrays={1,2,3,4,5};
int[] reverse=reverse(arrays);
printArray(reverse);
}
//定义一个方法:反转数组
public static int[] reverse(int[] arrays) {
int[] result = new int[arrays.length];
for (int i = 0, j = arrays.length - 1; i < arrays.length; i++, j--) {
result[j] = arrays[i];
}
return result;
//作为返回值
}
//定义一个方法:打印一个数组
public static void printArray(int[] arrays){
for (int i = 0; i <arrays.length ; i++) {
System.out.print(arrays[i]+" ");
}
}
}
浙公网安备 33010602011771号