1、数组:数组是存储同一种数据类型多个元素的集合,也可以看成是一个容器。
特点:
(1)、元素的数据类型一致,可以存放基本数据类型,也可以存放引用数据类型。
(2)、数组的长度是固定的。
2、数组的定义格式(两种):
(1)、数据类型[ ] 数组名; -- 定义一个存放int类型数据的数组。(推荐使用第一种)
int[] arr;
(2)、数据类型 数组名[ ];
int arr[];
数组没有初始化不能被使用,初始化?
初始化就是给这个变量开辟一个内存空间,为将来的值提供存放的空间。
3、数组的初始化方式(两种):
(1)、动态初始化:初始化时只指定数组长度,由系统为数组分配初始值。
格式:数据类型[] 数组名 = new 数据类型[元素的个数];
int[] arr = new int[3];
表示的是定义一个长度为3并且元素是int类型的一维数组。
(2)、静态初始化:初始化时指定每个数组元素的初始值,由系统决定数组长度。
格式:数据类型[] 数组名 = new 数据类型[]{元素值1,元素值2...};
简化格式:数据类型[] 数组名 = {元素值1,元素值2...};
int[] arr = {1,2,3,4,5};
//动态初始化一个数组: 定义一个可以存放3个int类型数据的数组。 int[] arr = new int[3]; System.out.println(arr); //[I@4554617c :这是arr数组在堆内存中的地址值,数字结尾的c表示地址是十六进制的形式。 //索引(index) :从左往右编号,从0开始。我们可以通过索引获取到该位置上的元素 // 获取数组元素的格式:数组名[元素的索引] System.out.println(arr[0]); //获取第一个元素 0 System.out.println(arr[1]); //获取第二个元素 0 System.out.println(arr[2]); //获取第三个元素 0
会发现获取的三个元素结果都是0,为什么呢?
因为我们没有给数组元素赋值,而系统默认给出的初始值是0。
由上图可知:
系统默认给出的初始值: byte、short、int、long 0 float、double 0.0 char 'u0000' boolean false 引用数据(数组等) null
JVM将内存划分成的5个部分:
栈:局部变量和方法的调用
堆:new出来的东西都在堆里面
方法区
本地方法区
寄存器
4、如何给数组中的元素进行赋值呢?
通过数组中的索引给元素进行赋值。
//给数组中第一个元素进行赋值 arr[0] = 10; //给数组中第二个元素进行赋值 arr[1] = 20; //给数组中第三个元素进行赋值 arr[2] = 30; System.out.println(arr[0]); //10 System.out.println(arr[1]); //20 System.out.println(arr[2]); //30
注意动态初始化不能与静态初始化混合使用!!
int[] arr = new int[3]{11,22,33}; //error
5、数组遍历:
获取的长度的属性:length
使用格式:数组名.length
public static void printArray(int[] arr){ for(int i=0;i
然后在main方法中调用该方法,传入一个arr数组就可以了。
printArray(arr); //方法调用格式
6、二维数组:元素是由一维数组组成的数组。
定义格式(三种):
(1)、数据类型[][] 数组名 = new 数据类型[m][n];
m:表示的是有多少个一维数组
n:表示的一维数组的元素个数
int[][] arr = new int[3][2];
表示的是定义一个有3个长度为2的一维数组arr组成的二维数组。
(2)、数据类型[][] 数组名 = new 数据类型[m][];
m:表示的是有多少个一维数组
int[][] arr = new int[4][];
给数组赋值:
//表示二维数组中第一个元素是一个长度为4的int类型的一维数组。 arr2[0] = new int[4]; //表示二维数组中第二个元素是一个长度为5的int类型的一维数组。 arr2[1] = new int[5]; //表示二维数组中第三个元素是一个长度为10的int类型的一维数组。 arr2[2] = new int[10];
(3)、数据类型[][] 数组名 = new 数据类型[][]{{元素1,元素2...},{元素1,元素2,元素3...},...};
int[][] arr = new int[][]{{1,2},{3,4,5},{1,2,34,5}};
简化格式:数据类型[][] 数组名 = {{元素1,元素2...},{元素1,元素2,元素3...},...}; (推荐)
int[][] arr = {{1,2},{3,4,5},{1,2,3,4,5}};
表示的是:二维数组arr中有三个一维数组,分别是{1,2},{3,4,5},{1,2,3,4,5}
注意:
1、以下几种写法也是二维数组
数据类型[] 数组名[];
int[] arr[] = new int[3][2];
数据类型 数组名[][];
int arr[][] = new int[3][2];
2、格式3不能与格式1、格式2混合使用。
int[][] arr = new int[2][]{{1,2},{3,1,2}}; //错误格式
7、二维数组的遍历方式: 双重for循环
//定义一个二维数组 int[][] num = {{1, 2}, {2, 3, 4}, {4, 5, 6, 7}, {7, 8, 9, 10}}; for (int i = 0; i < num.length; i++) { //外层循环遍历到的是每一个一维数组 System.out.println("第" + (i + 1) + "个数组:"); for (int j = 0; j < num[i].length; j++) { //内层循环遍历每个一维数组的值 if (j == num[i].length - 1) { System.out.print(num[i][j] + "]"); } else if (j == 0) { System.out.print("[" + num[i][j] + ","); } else { System.out.print(num[i][j] + ","); } } //每次内循环结束表示打印完一个一维数组,换行 System.out.println(); }
java基础还在持续更新中,喜欢的朋友可以给我点个赞。谢谢。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)