Java数组
1、数组的概述
数组是相同类型数据的有序集合。
数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成。
其中每一个数据称作一个数组元素,每个数组元素都可以通过一个下标来访问他们。
使用数组可以让我们的程序变的简单,避免定义多个重复的变量。
2、数组的声明创建
首先必须声明数组变量,才能在程序中使用该数组,下面是声明数组变量的语法:
String[] args; // 首选的声明方式,推荐
String args[]; // 不推荐
Java语言使用new关键字来创建数组,语法如下:
dataType[] array = new dataType[size];
int[] nums = new int[10]; // 定义了一个长度为 10 的整型数组
// 给数组中的元素赋值
nums[0] = 1;
nums[1] = 2;
nums[2] = 3;
nums[3] = 4;
nums[4] = 5;
nums[5] = 6;
nums[6] = 7;
nums[7] = 8;
nums[8] = 9;
nums[9] = 10;
// 通过数组的下标来取值
System.out.println(nums[1]) // 输出:2
数组的元素是通过索引来访问的,数组索引是从0开始的。
获取数组的长度:array.length
数组动态初始化:
int data[] = new int[3]; /*开辟了一个长度为3的数组*/
data[0] = 10; // 第一个元素
data[1] = 20; // 第二个元素
data[2] = 30; // 第三个元素
for(int x = 0; x < data.length; x++) {
System.out.println(data[x]); //通过循环控制索引
}
数组静态初始化:
我们上面定义的数组都有一个特点:先给数组开辟内存空间,然后再用索引进行数据的赋值,这种做法就叫做:动态初始化。
如果数组在定义的时候就可以同时出现设置的数据内容,那么就可以采用静态初始化来完成。
格式: 数据类型 数组名称 = new 数据类型[] {值, 值,…}
如:
public class ArrayDemo {
public static void main(String args[]) {
int data[] = {1, 3, 4, 55, 11, 32, 121, 33}; // 静态初始化int型数组
for(int i = 0; i < data.length; i++) {
System.out.println(data[i]);
}
}
}
3、数组的使用
数组属于引用数据类型,所以会发生引用传递。而引用传递的本质是:同一块堆内存空间可以被不同的栈内存所指向。
public class ArrayDemo02 {
public static void main(String args[]) {
int data[] = null;
data = new int[3]; //开辟一个长度为3的数组
int temp[] = null; //声明int型数组对象:temp
data[0] = 10;
data[1] = 20;
data[2] = 30;
temp = data; //int temp[] = data;
temp[0] = 99;
for(int i = 0; i < temp.length; i++) {
System.out.println(data[i]);
}
}
}
4、二维数组
在之前所使用的数组发现只需要一个索引就可以进行访问,那么这样的数组实际上非常像一个数据行的概念 。
现在痛过一个索引就可以取得唯一的一个记录。所以这样的数组可以简单理解为一维数组,而二维数组本质上指的是行列集合,也如果要确定某一个数据需要行索引和列索引来进行定位 。
那么对二维数组的定义有两种声明形式:
- 数组的动态初始化:数据类型 对象数组[][] = new 数据类型 [行个数] [列个数];
- 数组的静态初始化:数据类型 对象数组[][] = new 数据类型 [行个数] [列个数]{{值, 值,…}, {值, 值,…},…};
int[][] arr2 = new int[][]{{10,20,30},{40,50,60},{70,80,90}};