一维数组
创建:
-
先声明,再使用new运算符经行内存分配
-int arr[]; // int 数组类型 arr 数组名字
-int[] arr // int 数组类型 arr 数组名字
声明数组后,含不能立即访问,含需要给他分配内存;
-arr = new int[len]; //arr 数组名 int 类型 len 数组元素个数
-
声明的同时为数组分配内存
-
int arr = new int[len] ; //arr 数组名 int 类型 len 数组元素个数
初始化数组:
int arr[] = new int [len]{1,2,3}; //arr 数组名 int 类型 len 数组元素个数
int arr[] = {1,2,3};
二维数组
创建:
-
先声明,再使用new运算符经行内存分配
-int arr[][]; // int 数组类型 arr 数组名字
-int[] [] arr // int 数组类型 arr 数组名字
声明数组后,含不能立即访问,含需要给他分配内存;
-arr = new int[len][len]; //arr 数组名 int 类型 len 数组元素个数
-
声明的同时为数组分配内存
-int arr = new int[len][len] ; //arr 数组名 int 类型 len 数组元素个数
初始化数组:
int arr[] = new int [l][]{{1,2},3}; //arr 数组名 int 类型
数组的基本操作
遍历数组:
- 普通for循环遍历
public static void main(String[] args) {
int[] arr = {1,23,4,5,6};
for(int i=0 ; i<arr.length;i++){
System.out.println(arr[i]);
}
}
- 增强for循环
public static void main(String[] args) {
int[] arr = {1,23,4,5,6};
for(int i:arr){
System.out.println(i);
}
}
数组的常用方法
方法 | 功能 |
---|---|
length | 获取数组长度 |
fill(int[] arr, int value) | 将指定的int值分配给int型数组的每个元素 |
fill(int[] a, int fromlndex, int tolndex,int value) | 将指定的int值分配给int型数组指定范围中的每个元素 |
Arrays.sort(object) | 对数组经行排序 |
copyOf(arr , int newlength) | 复制数组至指定长度 |
copyDfRange(arr, int formlndex,int toindex) | 将指定数组的指定长度复制到一个新数组中去 |
binarySearch(object[] arr;object key) | 使用二分法搜索指定数组,返回该方法的索引值 |
binarySearch(object[] arr , int formlndex, int tolndex , obbject key) | 在指定范围内检索某一元素 |
length:
public static void main(String[] args) {
int arr[] = {1,2,3,4,5,7};
int a = arr.length;
System.out.println(a);
}
返回:6
填充替换数组
在数组定义完成后,可以通过Arrays类的静态方法fill来对数组中的元素经行替换。该方法通过各种重载形式可完成对任意类型的数组元素的替换。fill方法有两种参数类型:
- fill(int[] arr, int value)
将指定的int值分配给int型数组的每个元素
语法:fill(int[] arr, int value)
arr:要经行替换的数组。
value:要存储数组中所有元素的值
public static void main(String[] args) {
int arr[] = new int[5];
Arrays.fill(arr,2);
for(int i =0 ; i<arr.length;i++){
System.out.print(arr[i]);
}
返回:2 2 2 2 2
- fill(int[] a, int fromlndex, int tolndex,int value)
将指定的int值分配给int型数组指定范围中的每个元素。填充的范围从索引fromIndex一直索引toIndex。如果fromIndex=toIndex,则填充范围为空
语法:fill(int[] a, int fromlndex, int tolndex,int value)
arr:要经行填充的数组
fromIndex:要使用指定值填充的第一个元素值(包括)。
toIndex :要使用指定值填充的最后一个元素的索引值(不包括).
value:要存储在数组所有元素的值。
int arr[] = new int[5];
Arrays.fill(arr,1,3,8);
for(int i =0 ; i<arr.length;i++){
System.out.println(arr[i]);
}
返回:0 8 8 0 0
对数组经行排序
- 语法:
Arrays.sort(object) //object 数组名
public static void main(String[] args) {
int[] arr = {1,23,4,5,6};
for(int i:arr){
System.out.println(i);
}
}
返回:1 4 5 6 23
复制数组
- copyOf(arr , int newlength):复制数组至指定长度
语法:copyOf(arr , int newlength)
arr:要复制的数组
newlength :int类型的常量 指复制后新数组的长度
int arr[] = {1,2,3,4,5,7};
int[] arr1 = Arrays.copyOf(arr, 6);
for(int a : arr1){
System.out.println(a);
}
返回:1,2,3,4,5,7
- copyDfRange(arr, int formlndex,int toindex):将指定数组的指定长度复制到一个新数组中去
语法:copyDfRange(arr, int formlndex,int toindex)
arr:要进行复制的数组
formIndex :开始复制的索引位置 0<formIndex<arr.length
toindex: 要复制范围的最后索引位置
int arr[] = {1,2,3,4,5,7};
int[] arr1 = Arrays.copyOfRange(arr, 2,5);
for(int a : arr1){
System.out.print(a);
}
返回3 4 5
查询数组
- binarySearch(object[] arr;object key):使用二分法搜索指定数组,返回该方法的索引值
语法:binarySearch(object[] arr;object key)
arr:要搜索的数组
key:要搜索的值
int[] arr = {1,23,4,5,6};
int i = Arrays.binarySearch(arr, 1);
System.out.println(i);
返回:0
- binarySearch(object[] arr , int formlndex, int tolndex , obbject
key):在指定范围内检索某一元素
语法:binarySearch(object[] arr , int formlndex, int tolndex , obbject key)
arr:要搜索的数组
formIndex :开始位置 0<formIndex<arr.length
toindex: 最后位置
key:要搜索的值
int[] arr = {1,23,4,5,6};
int i = Arrays.binarySearch(arr, 1,4,1);
System.out.println(i);
返回:-2