数组(Array)
数组的特点
java中的数组是一个数据完全相同且有序的集合
长度是确定的
数据可以是任何类型
数组的优缺点
优:
按照索引查找元素快|方便访问元素
能存储大量数据
遍历方便
缺:
根据内容查找元素慢
数组大小一经确定不能更改,不适合动态存储
只能存储一种类型的数据
增删效率慢
数组的常用方法
length 返回数组长度
Arrays.sort() 数组排序
数字排序从小到大
Arrays.toString() 将数组中的内容全部打印出来
·Arrays.equals() 比较数组元素是否相等
数组的定义
一维数组的定义
基本数据类型|引用数据类型[] 变量名 = new 基本数据类型|引用数据类型[];
int[] arr=new int[5];
int[] arr=new int[存放数值长度];
//一维数组我们也可以这样定义
int [] arr=new int[5];
int arr[]=new int[5];
一维数组的赋值方式
静态初始化
在确定数组长度的时候我们可以使用静态初始化
静态初始化
int[] arr=new int[]{5,6,84,6,3,5};
也可把这样写
int[] arr={5,6,84,6,3,5};
动态初始化
动态初始化
动态初始化我们要在定义的时候给定数组长度
初始化时我们要指定数组的索引下标然后操作相应的索引下标赋值
int[] arr=new int[4];
数组名[索引下标位置]=相对数据类型的值;
arr[0]=5;
arr[1]=4;
arr[2]=3;
arr[3]=2;
数组的遍历
普通for循环
int[] arr=new int[]{5,6,5,5,6,8,10};
for (int i=0;i< arr.length;i++){
System.out.print(arr[i]+"\t");
}
增强for循环(forEach)
int[] arr=new int[]{5,6,5,5,6,8,10};
for (int num:arr){
System.out.print(num+"\t");
}
二维数组的定义
基本数据类型|引用数据类型[][] 变量名=new 基本数据类型|引用数据类型[外层二维数组长度][];
int[][] arr=new int[9][];//标准定义
也可以这样定义
int[][] arr=new int[9][];//标准定义
int[] arr[]=new int[9][];
int [][]arr=new int[9][];
int arr[][]=new int[9][];
```
**二维数组的赋值操作**
```java
/静态初始化
int[][] arr=new int[][]{{1},{2,3},{4,5,6}};
//动态初始化
arr[0][0]=1;
arr[1][0]=2;
arr[1][1]=3;
arr[2][0]=4;
arr[2][1]=5;
arr[2][2]=6;
二维数组的遍历
二维数组的遍历方式跟一维数组的方式有些不同,二维数组需要循环嵌套,因此有很多方式:
普通双层for循环
int[][] arr=new int[][]{{1},{2,3},{4,5,6}};
for (int i=0;i<arr.length;i++){
for (int j=0;j<arr[i].length;j++){
System.out.print(Array.get(arr[i],j)+"\t");
}
System.out.println();
}
}
双层增强for循环
int[][] arr = new int[][]{{1}, {2, 3}, {4, 5, 6}};
for (int[] temp:arr){
for (int num:temp){
System.out.print(num+"\t");
}
System.out.println();
}
遍历出来的效果都是一样的
还可以增强for循环嵌套普通for循环,也可以普通for循环嵌套增强for循环,根据情况选择。
注意:增强for循环不可以操作索引!