数组
- 数组的长度是确定的,数组一旦被创建,它的大小就不可以被改变。如果越界,则报错:ArrayIndexOutofBounds。
- 数组的元素必须是相同类型,不允许出现混合类型。
- 数组的元素可以是任何数据类型,包括基本类型和引用类型。
- 数组变量属于引用类型,Java的对象是在堆中的,因此数组无论保存原始类型还是其他对象类型,数组对象本身是在堆中的。数组元素相当于对象的成员变量。
数组的默认初始化
数组是引用类型,它的元素相当于类的实例变量,因此数组一经分配空间,其中的每个元素也被按照实例变量同样的方式被隐藏初始化。
int[] a = new int[2];//创建一个数组
数组使用
public class Damo01 {
public static void main(String[] args) {
int[] array = {1,2,3,4,5};
reverse(array);
printArray(array);
}
//打印数组
public static void printArray(int[] array){
for (int i = 0; i < array.length; i++) {
System.out.println(array[i]);
}
}
//反转数组
public static int[] reverse(int[] array){//数组作参数
int temp = 0;
for (int i = 0,j = array.length-1; i < array.length/2; i++,j--) {
temp = array[i];
array[i] = array[j];
array[j] = temp;
}
return array;//数组作返回值
}
}
for-each循环
public class Damo02 {
public static void main(String[] args) {
int[] array = {1,2,3,4,5};
//array.for 没有下标
for (int i : array) {
System.out.println(i);
}
}
}
Arrays类
-
数组的工具类:java.util.Arrays。
-
Arrays类中的方法都是static修饰的静态方法,在使用的时候可以直接使用类名进行调用,不用使用对象来调用。
-
具有以下常用功能:
给数组赋值:fill方法
对数组排序:sort方法
比较数组:equals方法
查找数组元素:binarySearch方法(二分查找法)
public class Damo03 {
public static void main(String[] args) {
int[] a = {1,2,3,4,99,356,32,45};
//升序排列数组元素
Arrays.sort(a);
//打印数组元素
System.out.println(Arrays.toString(a));
//填充数组
Arrays.fill(a,0);
System.out.println(Arrays.toString(a));
int[] b = {1,2,3,4,99,356,32,45};
//填充第3,4个元素
Arrays.fill(b,2,4,0);
System.out.println(Arrays.toString(b));
}
}
运行结果:
[1, 2, 3, 4, 32, 45, 99, 356]
[0, 0, 0, 0, 0, 0, 0, 0]
[1, 2, 0, 0, 99, 356, 32, 45]