数组
1、数组的长度一旦确定就不能修改
2、创建数组时会在内存中开辟一整块连续的空间。
数据类型[] 数组名 = {元素1,元素2,元素3...};//必须在一个语句中完成,不能分开两个语句写 int[] arr = {1,2,3,4,5};//正确 int[] arr; arr = {1,2,3,4,5};//错误
数据类型[] 数组名 = new 数据类型[]{元素1,元素2,元素3...}; 或 数据类型[] 数组名; 数组名 = new 数据类型[]{元素1,元素2,元素3...}; int[] arr = new int[]{1,2,3,4,5};//正确 int[] arr; arr = new int[]{1,2,3,4,5};//正确 int[] arr = new int[5]{1,2,3,4,5};//错误的,后面有{}指定元素列表,就不需要在[长度]指定长度。
数组存储的元素的数据类型[] 数组名字 = new 数组存储的元素的数据类型[长度]; 或 数组存储的数据类型[] 数组名字; 数组名字 = new 数组存储的数据类型[长度];
-
数组存储的元素的数据类型: 创建的数组容器可以存储什么数据类型的数据。
-
元素的类型可以是任意的Java的数据类型。例如:int, String, Student等
-
[] : 表示数组。
-
数组名字:为定义的数组起个变量名,满足标识符规范,可以使用名字操作数组。
-
new:关键字,创建数组使用的关键字。因为数组本身是引用数据类型,所以要用new创建数组对象。
-
[长度]:数组的长度,表示数组容器中可以存储多少个元素。
-
-
-
索引范围:
-
数组名[索引]=数值,为数组中的元素赋值
-
数组的遍历
-
-
数组遍历: 就是将数组中的每个元素分别获取出来,就是遍历。遍历也是数组操作中的基石。
数组默认元素
数组扩容
public class Test1{ public static void main(String[] args){ int[] arrs={2,3,4,5}; int num=6; //对数组进行扩容 //1. 新建一个新数组(长度要比原来要长) int[] newArrs=new int[arrs.length+1]; //2. 将原数组中的数据复制到新数组 for(int i=0;i<arrs.length;i++){ newArrs[i]=arrs[i]; } //3. 将新数组的地址赋给arrs arrs=newArrs; //对arrs进行新增数据6 arrs[4]=6; //查看数据 for(int i=0;i<arrs.length;i++){ System.out.println(arrs[i]); } } }
//推荐 元素的数据类型[][] 二维数组的名称; //不推荐 元素的数据类型 二维数组名[][]; //不推荐 元素的数据类型[] 二维数组名[];
静态初始化
元素的数据类型[][] 二维数组名 = new 元素的数据类型[][]{ {元素1,元素2,元素3 。。。}, {第二行的值列表}, ... {第n行的值列表} }; 元素的数据类型[][] 二维数组名; 二维数组名 = new 元素的数据类型[][]{ {元素1,元素2,元素3 。。。}, {第二行的值列表}, ... {第n行的值列表} }; //以下格式要求声明与静态初始化必须一起完成 元素的数据类型[][] 二维数组的名称 = { {元素1,元素2,元素3 。。。}, {第二行的值列表}, ... {第n行的值列表} };
//(1)确定行数和列数 元素的数据类型[][] 二维数组名 = new 元素的数据类型[m][n]; m:表示这个二维数组有多少个一维数组。或者说一共二维表有几行 n:表示每一个一维数组的元素有多少个。或者说每一行共有一个单元格 //此时创建完数组,行数、列数确定,而且元素也都有默认值 //(2)再为元素赋新值 二维数组名[行下标][列下标] = 值;
//(1)先确定总行数 元素的数据类型[][] 二维数组名 = new 元素的数据类型[总行数][]; //此时只是确定了总行数,每一行里面现在是null //(2)再确定每一行的列数,创建每一行的一维数组 二维数组名[行下标] = new 元素的数据类型[该行的总列数]; //此时已经new完的行的元素就有默认值了,没有new的行还是null //(3)再为元素赋值 二维数组名[行下标][列下标] = 值;
二维数组的遍历
for(int i=0; i<二维数组名.length; i++){ for(int j=0; j<二维数组名[i].length; j++){ System.out.print(二维数组名[i][j]); } System.out.println(); }