- 基础数组操作
- 二维数组
- Arrays工具类
//基本数组创建 int[] a=new int[50];//a[50] int b[] = new int[50];//b[50] int[][] c = new int[30][30];//c[30][30] int d[][] = new int[30][30];//d[30][30]
public class array_demo {
public static void main(String[] args) {
int[] arr = {1, 2, 3, 4, 5};
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
//print all elements
int sum = 0;
for (int i = 0; i < arr.length; i++) {
sum += arr[i];
}
System.out.println("sum=" + sum);
//print sum of arrays:sum=15
int maxn = arr[0];
for (int i = 1; i < arr.length; i++) {
if (arr[i] > maxn) {
maxn = arr[i];
}
}
System.out.println("the max number is " + maxn);
//print the max number:the max number is 5
printArray(arr);
System.out.println();
int[] reverse = reverseArray(arr);
printArray(reverse);
}
public static void printArray(int[] arrays) {
for (int i = 0; i < arrays.length; i++) {
System.out.print(arrays[i] + " ");
}
}
//function:1 2 3 4 5
public static int[] reverseArray(int[] arrays) {
int[] res = new int[arrays.length];
for (int i = 0, j = res.length - 1; i < arrays.length; i++, j--) {
res[j] = arrays[i];
}
return res;
}
//reverse:5 4 3 2 1
}
二维数组
int[][] e = {{1, 2}, {3, 4}};
int f[][] = {{5, 6}, {7, 8}};
for (int i = 0; i < e.length; i++) {
for (int j = 0; j < e.length; j++) {
System.out.print(e[i][j] + " ");
}
System.out.println();
}
Arrays工具类
1.给数组赋值:fill
int b[] = new int[5]; Arrays.fill(arr,0,arr.length,val); Arrays.fill(arr,val);//缩写
1.fill二维数组
int[][] d=new int[3][3];
int[] b=new int[4];//随便找一个数组类型的进行间接赋值
Arrays.fill(b, 3);
Arrays.fill(d, b);
for (int i = 0; i < d.length; i++) {
for (int j = 0; j < d.length; j++) {
System.out.print(d[i][j]);
}
System.out.println();
}
2.数组排序:sort
Array.sort(arr);//123467 Arrays.sort(arr2, 0, 4);//[2, 3, 6, 7, 4, 1]
还可以改cmp自定义排序,但是需要重写或者用lambda匿名函数
注意:这时需要把int型改成Integer型
Arrays.sort(arr2, 0, 4, (o1, o2) -> {
return o2 - o1;
});
二维数组排序
需要重写
int arr1[][] = {{3, 2}, {2, 4}, {1, 9}};
Arrays.sort(arr1, new Comparator() {
@Override
public int compare(int[] o1, int[] o2) {
return o1[0] - o2[0];
}
});
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 2; j++) {
System.out.print(arr1[i][j]);
}
System.out.println();
}
3.比较:equals
它也可以重写来自定义cmp,这里就不举例了
System.out.println(Arrays.equals(arr1,arr1));//true
4.二分查找:binarySearch
它也可以分段查找
int arr3[] = {1, 2, 3, 4, 5, 6};
System.out.println(Arrays.binarySearch(arr3, 0));//-1
System.out.println(Arrays.binarySearch(arr3, 3));//2
System.out.println(Arrays.binarySearch(arr3, 1,4,2));//1



