数组的定义
◆数组是相同类型数据的有序集合.
◆数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成。
◆其中,每一个数据称作一个数组元素,每个数组元素可以通过一个下标来访问它们.
创建数组
静态初始化
public static void main(String[] args) {
//静态初始化
int[] a ={1,8,2,5,1,2,1,5};
}
动态初始化
public static void main(String[] args) {
//动态初始化
int[] b =new int[10];
b[0] =13;
}
数组边界
ArraylndexOutOfBoundsException:数组下标越界异常!
小结:
◆数组是相同数据类型(数据类型可以为任意类型)的有序集合数组也是对象。
◆数组元素相当于对象的成员变量
◆数组长度的确定的,不可变的。如果越界,则报:ArrayIndexOutofBounds
数组的特点
◆其长度是确定的。数组一旦被创建,它的大小就是不可以改变的。
◆其元素必须是相同类型,不允许出现混合类型。
◆数组中的元素可以是任何数据类型,包括基本类型和引用类型。
◆数组变量属引用类型,数组也可以看成是对象,数组中的每个元素相当于该对象的成员变量。数组本身就是对象,Java中对象是在堆中的,因此数组无论保存原始类型还是其他对象类型,数组对象本身是在堆中的。
数组的使用
打印输出数组:
public class Demo {
public static void main(String[] args) {
//创建一个数组
int[] a = {1, 8, 2, 5, 1, 2, 1, 5};
for (int i = 0; i < a.length; i++) {
System.out.print(a[i]);
}
}
}
数组反转:
public class Demo {
public static void main(String[] args) {
//创建数组
int[] A ={9,10,19,50,88};
//调用方法
int[] fanzhuan = fanzhuan(A);
//遍历数组
for (int i = 0; i < fanzhuan.length; i++) {
System.out.println(fanzhuan[i]);
}
}
//数组反转
public static int[] fanzhuan(int[] shzu){
//创建一个新数组用于装反转过后的数组
int[] ints = new int[shzu.length];
//遍历A数组,将A的数组装进ints里面,j = ints.length-1只会执行一次,不会每一次都执行
for (int i = 0,j = ints.length-1; i < shzu.length; i++,j--) {
ints[j] = shzu[i];
}
return ints;
}
}
多维数组
多维数组可以理解为,一个数组中的每一个元素都是一个新的数组,类似套娃
二维数组的结构:
int[][] a = {{3,9},{4,8},{9,15},{14,13}};
二维数组的遍历:
public class Demo {
public static void main(String[] args) {
//二维数组的遍历
int[][] a ={{18,19},{20,21},{22,23},{24,25},{26,27}};
for (int i = 0; i < a.length; i++) {
for (int j = 0; j < a[i].length; j++) {
System.out.print(a[i][j]+"\t");
}
}
}
}