- 前言
- Arrays.fill( ); 数组填充
- Arrays.toString(array) 打印数组
- Arrays.sort()排序合集
- Arrays.equals(); 比较数组元素是否相等
- 截取数组
- Arrays.copeOf()
- Arrays.copeOfRange();
- Arrays.binarySearch()二分法查找指定元素的下标 *符号找不到
Arrays类位于 java.util 包中,主要包含了操作数组的各种方法。
Arrays.fill( ); 数组填充- 覆盖填充
// 填充数组
int[] array = new int[10];
Arrays.fill(array, 4);
Arrays.fill(array, 5);
String str = Arrays.toString(array); // Arrays类的toString()方法能将数组中的内容全部打印出来
System.out.print(str); // 覆盖后结果为5
- 区域填充
// 填充数组
int[] array = new int[10];
// 从下标为0到下标为4的填充5
Arrays.fill(array, 0,4,5);
String str = Arrays.toString(array); // Arrays类的toString()方法能将数组中的内容全部打印出来
System.out.print(str);
// [5, 5, 5, 5, 0, 0, 0, 0, 0, 0]
Arrays.toString(array) 打印数组
String str = Arrays.toString(array); // Arrays类的toString()方法能将数组中的内容全部打印出来Arrays.sort()排序合集
- 1.1数组常规排序
// 填充数组
int[] array1 = new int[]{3, 1, 5, 8, 20, -12};
// 排序
Arrays.sort(array1);
String str = Arrays.toString(array1); // Arrays类的toString()方法能将数组中的内容全部打印出来
System.out.print(str);
- 1.2数组降序
// 降序
// 填充数组
Integer[] array1 ={3, 12, 5, 8, 20, -12};
// 排序
Arrays.sort(array1,Collections.reverseOrder());
- 1.3指定位置排序
// 填充数组
Integer[] array1 ={3, 12, 5, 8, 20, -12};
//第0位(0开始)到第5位(不包括)排序
Arrays.sort(array1,0,5);
String str = Arrays.toString(array1);
System.out.print(str);
//输出:[3, 5, 8, 12, 20, -12]
- 2.字符串排序 默认先大写在小写
String[] strArray = new String[] { "Z","z", "a", "f" };
Arrays.sort(strArray);
String str1 = Arrays.toString(strArray);
System.out.println(str1);
//输出:[Z, a, f, z]
-3. 按照字母排序忽略大小写 String.CASE_INSENSITIVE_ORDER
Arrays.sort(strArray, String.CASE_INSENSITIVE_ORDER);
String str2 = Arrays.toString(strArray);
System.out.println(str2);
//输出: [a, f, Z, z]
- 4.反向排序(降序)reverse-order sort
Arrays.sort(strArray, Collections.reverseOrder());
String str2 = Arrays.toString(strArray);
System.out.println(str2);
//输出: [z, f, a, Z]
- 5.忽略大小写降序 Case-insensitive reverse-order sort
Arrays.sort(strArray, String.CASE_INSENSITIVE_ORDER);
Collections.reverse(Arrays.asList(strArray));
String str2 = Arrays.toString(strArray);
System.out.println(str2);
//输出:[z, Z, f, a]
Arrays.equals(); 比较数组元素是否相等
// 填充数组
Integer[] array1 ={3, 12, 5, 8, 20, -12};
Integer[] array2 ={3, 12, 5, 8, 20, -12};
System.out.println(Arrays.equals(array1,array2));
// 输出 true
String[] strArray1 = new String[] { "你好","你好吗","?" };
String[] strArray2 = new String[] { "你好","你好吗","1" };
System.out.println(Arrays.equals(strArray1,strArray2));
// 输出 true
截取数组
Arrays.copeOf()
int[] arr = {10, 20, 30, 40, 50};
// 截取arr数组的3个元素
int[] arr1 = Arrays.copyOf(arr, 3);
String str = Arrays.toString(arr1);
System.out.print(str);
//输出:[10, 20, 30]
Arrays.copeOfRange();
int []arr = {10,20,30,40,50};
// 截取arr第1位(1开始)截取到第3位(不包括))
int []arr1 = Arrays.copyOfRange(arr,1,3);
String str = Arrays.toString(arr1);
System.out.print(str);
//输出:[20, 30]
Arrays.binarySearch()二分法查找指定元素的下标 *符号找不到
int[] arr1 = {10, 20, 30, 40};
System.out.println(Arrays.binarySearch(arr1, 30));
//输出:2
// 注意 "%" 找不到
String[] strArray1 = new String[] { "你好","你好吗","?","%" };
System.out.println(Arrays.binarySearch(strArray1, "%"));
//输出:-1
int[] arr2 = {10, 20, 30, 40, 50};
// (找不到元素,返回-x,从-1开始数,如题,返回-4)
System.out.println(Arrays.binarySearch(arr2, 36));
//输出:-4
int[] arr3 = {10, 20, 30, 40, 50};
// (从0到3位(不包括)找30,找到了,在第2位,返回2)
System.out.println(Arrays.binarySearch(arr3, 0, 3, 30));
//输出:2
int[] arr4 = {10, 20, 30, 40, 50};
// (从0到3位(不包括)找40,找不到,从-1开始数,返回-4)
System.out.println(Arrays.binarySearch(arr4, 0, 3, 40));
//输出:-4



