一、数组定义和初始化
JAVA数组是用来保存固定大小的同类型数据的一种数据结构。
1、数组的定义
1.1 一维数组
T[] 数组名 = new T[N];
(1)T表示数组用来保存哪类数据,可以是基础类型,也可以是对象类型。
(2)N是明确的大于0的自然数,用来表示数组的长度。
具体示例:
//基础类型
int[] intArray = new int[10];
char[] charArray = new char[20];
//对象类型
Integer[] integerArray = new Integer[100];
String[] stringArray = new String[1000];
Object[] objectArray = new Object[10000];
1.2 多维数组
多维数组可以理解为数组中存储的数据仍是数组——二维数组是一维数组中保存一维数组,三维数组中保存的每个元素是二维数组。但是多维数组在实际中应用比较少。我们以二维数组和三维数组为例:
//二维数组
int array[][] = {{1,2}, {3,4}};
int[][] array2 = {{1,2}, {3,4}, {5,6,7}};
int[][] array3 = new int[2][4];
int[][] array4 = new int[3][];
//三维数组
int[][][] array5 = new int[3][4][2];
int[][][] array6 = {{{1,2}, {3,4}}, {{5,6}, {7,8}}, {}};
2、数组的初始化
数组的初始化可以在定义时完成,也可以在定义之后在初始化。
定义时初始化:
//基础类型
int[] intArray = {1,2,3};
char[] charArray = {'1','f','c'};
//对象类型
Integer[] integerArray = {1, new Integer(20)};
String[] stringArray = {"abc", "qq"};
//所有对象的根类都是Object类,所以定义一个Object数组可以存放所有类型
//但实际中不会这样使用
Object[] objectArray = {"abc", new ArrayList<>()};
定义之后初始化:
//基础类型
int[] intArray = new int[10];
intArray[0] = 12;
intArray[9] = 22;
char[] charArray = new char[20];
charArray[0] = 'd';
charArray[19] = 'z';
//对象类型
Integer[] integerArray = new Integer[100];
integerArray[2] = 2;
integerArray[99] = 99;
String[] stringArray = new String[1000];
stringArray[2] = "java";
stringArray[99] = "python";
//所有对象的根类都是Object类,所以定义一个Object数组可以存放所有类型
//但实际中不会这样使用
Object[] objectArray = new Object[10000];
objectArray[2] = new ArrayList<>();
objectArray[99] = new int[10];
二、数组的使用
//元素的访问通过下标,下标从0开始,最大值为数组长度-1
System.out.println(programArray[2]);
System.out.println(programArray[999]);
//数组的长度通过Array.length获取
System.out.println(programArray.length);
//遍历数组,可以用for-each,也可以用下标
for(String program : programArray) {
System.out.println(program);
}
for(int i=0; i<programArray.length; i++) {
System.out.println(programArray[i]);
}
//所有对象的根类都是Object类,所以定义一个Object数组可以存放所有类型
//但实际中不会这样使用
Object[] objectArray = new Object[10000];
objectArray[2] = new ArrayList<>();
objectArray[99] = new int[10];