数组概述:
定义:数组是一类具有相同数据类型元素的集合,可以用来存储具有固定大小长度的一类相同类型的元素。
使用目的:就是用来一次性声明大量相同类型的元素,便于操作相同类型的数据,用于批量数据操作。
数组应用形式:
语法格式: 数据类型[] 变量名
数据类型:byte、short、int、long、float、double、char、String(常用的有String、int、char)
例如:String[] strs(表示声明了一个String类型的变量名为strs的一个数组)
int[] ints(表示声明了一个int类型的变量名为ints的一个数组)
数组初始化:静态初始化和动态初始化
动态初始化: 在声明定义数组时,直接手动固定数组的长度
格式:数据类型[] 变量名=new 数据类型[n];//n为具体长度
方式一:int[] ints;//先声明
ints=new int[5];//后固定数组长度
方式二; int[] ints=new int[5];//直接声明固定数组长度
静态初始化:在声明定义数组时,不给定具体的数组长度,数组的长度由系统分配。
格式:数据类型[] 变量名=new 数据类型[]{值1,值2...值n};
方式一:int[] arr=new int[]{1,2,3};
方式二:int[] arr={1,2,3};
--------------------------------------------------------------------------------------------------------
数组使用的注意事项:
①使用之前必须初始化
②数组固定的长度不可变
③数组如果直接输出变量名,所显示的是数组的地址值
④数组下标越界(ArrayIndexOutOfBoundsException)和空指针异常(NullPointerException)。
⑤数组的取值是根据数组对应的下标进行取值(数组下标从0开始,也就是说下标为0所对应的值为数组的第一个值)
常用数组类型:主要有 int、String、char类型
int类型数组默认值为0,String类型默认值为null, char类型默认值为空
public class Test05 {
public static void main(String[] args) {
int[] ints =new int[2];
System.out.println("int类型数组默认值为:"+ints[0]);
String[] strs =new String[2];
System.out.println("String类型数组默认值为:"+strs[0]);
char[] chars =new char[2];
System.out.println("char类型数组默认值为:"+chars[0]);
}
}
结果:
int类型数组默认值为:0
String类型数组默认值为:null
char类型数组默认值为:
数组的内存结构:
数组的操作:
①基本操作:基本操作就是通过下标(索引)去获取值、对数组进行一系列的赋值操作,循环遍历数组,输出对应值。
int[] ints = new int[]{1, 2, 3};//长度为3的整型数组 下标值为:0、1、2
System.out.println(ints[0]);//取数组索引为0的元素---->1
ints[0] = 4;//对ints数组下标为0的值进行更改为4
System.out.println(ints[0]);//输出结果:4
for (int i = 0; i < ints.length; i++) {
System.out.print(ints[i]+" ");//循环遍历数组中的值--->输出结果为:4 2 3
}
②复杂操作:数组中有一些方法可以使用length()、Arrays.sort()、Arrays.toString()、Arrays.binarySearch()
int[] ints = new int[]{1, 6, 2};
System.out.println(ints.length);//length()方法输出数组的长度
Arrays.sort(ints);//Arrays类中的sort(数组名)方法对数组进行排序
System.out.println(Arrays.toString(ints));//Arrays类中的toString(数组名)方法输出数组
int index = Arrays.binarySearch(ints,2);//返回ints数组中值为2的索引
System.out.println(index);//输出index索引
结果:
3
[1, 2, 6]
1
此外,还可以利用数组进行求和、求数组中的最大值、最小值、插入数据、删除数据等一系列操作,看开发需求工作,写出相应的代码逻辑。
上面说的是一维数组,还有二维数组、三维数组........
数组是为了一次性声明大量相同数据类型的数据。然后进行操作。
二维数组:
①语法格式:数据类型[][] 变量名;
比如: int[][] arr; String[][] strs;
②语法相关声明与一维数组相似,也分为静态初始化和动态初始化
动态初始化:int[][] arr=new int[长度][长度可以不给];
静态初始化:int[][] arr=new int[][]{{1,2,3},new int[]{4,5,6}};
int[][] arr={{1,2,3},new int[]{4,5,6}};
③操作:
比如:数组遍历、取值、查找对应索引、数据排序、查找最大值最小值.........
大多和一维数组逻辑思维一致,用解决一维数组数据的方法解决二维数组,同样适用。这里就不展开表示了,小伙伴们自行操作。
④一维数组与二维数组的区别:
二维数组:数组里的每一个元素都是一个一维数组的数组被称为二维数组。
怎么理解呢?看一下代码:
int[][] ints ={{1,2,3},{4,5,6},{7,8,9}};
for (int i = 0; i < ints.length; i++) {
for (int j = 0; j < ints[i].length; j++) {
System.out.print(ints[i][j]+" ");
}
System.out.println();
}
结果:
1 2 3
4 5 6
7 8 9
其实就是将{1,2,3}、{4,5,6}、{7,8,9}各自看成一个数组:
int[] ints1 = {1,2,3};
int[] ints2 = {4,5,6};
int[] ints3 = {7,8,9};
int[][] ints ={{1,2,3},{4,5,6},{7,8,9}};//进行综合定义
二维数组也有一些方法操作,其实和一维数组大致都一样,所以没什么可说,如有需要,看其他博主。