数组
一维数组
数组是具有相同数据类型的一组数据的集合。
- 声明数组
// 声明数组具有两种方式
数组元素类型 数组名字[];
数组元素类型[] 数组名字;
int arr[];
// 分配内存空间
数组名字 = new 数组元素的类型[数组元素的个数];
arr = new int[5];
// 也可以在声明时就分配内存空间
数组元素的类型 数组名字[] = new 数组元素的类型[数组元素的个数];
int arr[] = new int[5]
- 初始化
// 同样含有两种方式
int arr[] = new int[]{1,2,3,4};
int arr1[]={1,2,3,4}
二维数组
- 声明数组
// 声明数组具有两种方式
数组元素类型 数组名字[][];
数组元素类型[][] 数组名字;
int arr[][];
// 分配内存空间
数组名字 = new 数组元素的类型[数组元素的个数][数组元素的个数];
arr = new int[5][4];
- 初始化
// 同样含有两种方式
int arr[][] = new int[][]{1,2},{3,4}};
int arr1[][]={{1,2},{3,4}}
数组基本操作
- 遍历数组
// 双层for循环 or foreach
int arr[][]={{1,2},{3,4}}
for(int x[]: arr){
for(int y: x){
System.out.println(y);
}
}
- 填充替换数组元素
通过Arrays类的静态方法fill() 对数组中的元素进行替换
-
fill(int[] a, int value)
将指定的int值分配给int型数组的每个元素
int arr[] = new int[5]; Arrays.fill(arr, 8); // 使用8进行填充
-
fill(int[] a, int fromlndex, int tolndex, int value)
-
a : 要填充的数组
-
fromlndex: 第一个元素的索引
-
tolndex: 最后一个元素的索引
-
value:填充的值
int arr[] = new int[]{1,2,3,4} Arrays.fill(arr, 1, 3, 8)
-
- 排序
Arrays.sort() //默认升序
- 复制
Arrays.copyOf(arr,int newlength) // 复制到指定长度newlength 超过原长度用0填充(char 用null填充)
Arrays.copyOfRange(arr,int formlndex, int tolndex)
- 查询
Arrays.binarySearch(Object[] a, Object key) //二分搜索法搜索指定数组
// 必须先进行排序,返回值为索引或者-1或‘-’插入点
Arrays.binarySearch(Object[] a, int formlndex, int tolndex, Object key)
// 指定范围内搜索,包含formlndex,不包含tolndex
数组排序
-
冒泡排序
-
直接选择排序
-
反转排序