数组是属于java里面的引用数据类型,最新项目里面用到了数组,顺便把自己学到的东西整理一下。
1、数组的概述
是多个相同数据类型按一定数序排列的集合,数组在定义的时候会开辟连续的内存空间,在定义的时候必须指定数组的大小,数组的长度一旦确定,就不能更改大小,和list不同的是数组的元素即可以是基本数据类型,也可以是引用数据类型。
2、数组的初始化
数组的初始化大概有两种方法,动态初始化和静态初始化
动态初始化:
数组存储的数据类型[ ] 数组名字 = new 数组存储的数据类型[数组长度];(nice)
数组存储的数据类型 数组名字[ ] = new 数组存储的数据类型[数组长度];
int[] a = new int[size];
静态初始化:
数据类型[] 数组名 = new 数据类型[]{元素1,元素2,元素3…};
int[] arr = new int[]{1,2,3,4,5};
// 也可以略写成一下样子
int[] arr = {1,2,3,4,5};
数组也是通过new出来的对象,都是在堆内存中存储的。(关于内存的东西,有必要单独写出来)
3、二维数组
二维数组,其实就是一维数组里面的每一个元素都是素组。
二维数组的初始化
动态初始化:
// 可以理解为初始化一个可以存放4个一维数组的数组
String[][] a = new String[4][];
// 这种方法主要是可以给二维数组付一个初始值
String[][] b = new String[4][5];
// 如果是a数组的化就会报空指针异常,b数组就输出全是null
for (int i = 0;i<a.length;i++){
for (int j=0;j<a[i].length;j++){
System.out.print(a[i][j]);
}
System.out.print("\n");
}
第二种方法的初始化并没有规定二维数组的列数必须是5
// 举例,下面这样赋值是没有问题的
Stirng[][] a = new String[4][5];
String [b] = {"1","2","3,"4","5","6"};
a[0] = b;
静态初始化:
String[][] a = {
{"1","2","3"},
{"4","5","6"},
{"7","8","9"}
}
// 下面两种修改值的方法是不对的!!
a[0] = {"10","11","12"};
// 要写成这种样子
a[0] = new String{"10","11","12"};
4、常用 API(java.util.Arrays)
输出结果:
其实也就说了其中最简单的几个方法,其实如果有需要的化可以点开Arrays这个类,找寻自己需要的方法,Arrays类里面排序,查找就写了好多种,涉及到算法上的东西,以后再写吧。