网站宣传与推广的方法wordpress单位内网做网站
网站宣传与推广的方法,wordpress单位内网做网站,外贸平台建设,企业内部网络属于什么网络Java 中的 Arrays 类#xff0c;它是 java.util 包下提供的数组操作工具类#xff0c;包含了大量静态方法#xff0c;用于简化数组的排序、查找、填充、复制、比较等常见操作#xff0c;无需手动编写复杂逻辑#xff0c;下面按功能分类讲解核心常用方法及使用示例#xf…Java 中的Arrays类它是java.util包下提供的数组操作工具类包含了大量静态方法用于简化数组的排序、查找、填充、复制、比较等常见操作无需手动编写复杂逻辑下面按功能分类讲解核心常用方法及使用示例一、核心特性Arrays是工具类所有方法均为static修饰直接通过Arrays.方法名()调用无需创建对象支持所有基本数据类型数组int[]、char[]等和引用数据类型数组String[]、Object[]等部分方法如排序、二分查找对引用数据类型数组支持自定义比较器JDK 8。二、常用方法分类详解1. 数组排序sort()用于对数组进行升序排序默认支持基本类型数组和引用类型数组引用类型数组默认按自然顺序排序。1基本类型数组排序import java.util.Arrays; public class ArraysDemo { public static void main(String[] args) { // int 数组排序 int[] intArr {3, 1, 4, 1, 5, 9}; Arrays.sort(intArr); System.out.println(int 数组升序排序 Arrays.toString(intArr)); // 输出[1, 1, 3, 4, 5, 9] // char 数组排序 char[] charArr {c, a, b, z}; Arrays.sort(charArr); System.out.println(char 数组升序排序 Arrays.toString(charArr)); // 输出[a, b, c, z] } }2指定范围排序sort(int[] a, int fromIndex, int toIndex)对数组从fromIndex包含到toIndex不包含的区间进行排序。int[] arr {9, 8, 7, 6, 5, 4}; Arrays.sort(arr, 1, 4); // 排序索引 1~3 的元素 System.out.println(指定范围排序 Arrays.toString(arr)); // 输出[9, 6, 7, 8, 5, 4]3引用类型数组排序自定义比较器JDK 8通过Comparator实现自定义排序规则如降序、按字符串长度排序。// String 数组按长度降序排序 String[] strArr {Java, Python, C, JavaScript}; Arrays.sort(strArr, (s1, s2) - s2.length() - s1.length()); System.out.println(按字符串长度降序 Arrays.toString(strArr)); // 输出[JavaScript, Python, Java, C] // Integer 数组降序排序 Integer[] integerArr {3, 1, 4, 2}; Arrays.sort(integerArr, (a, b) - b - a); System.out.println(Integer 数组降序 Arrays.toString(integerArr)); // 输出[4, 3, 2, 1]2. 数组查找binarySearch()基于二分查找算法查找指定元素在数组中的索引注意使用前必须先对数组进行排序否则结果不确定。1基本用法int[] arr {1, 3, 5, 7, 9}; // 1. 查找存在的元素 int index1 Arrays.binarySearch(arr, 5); System.out.println(元素 5 的索引 index1); // 输出2 // 2. 查找不存在的元素 // 返回值规则-(插入点) - 1插入点是元素应该插入的位置保持数组有序 int index2 Arrays.binarySearch(arr, 6); System.out.println(元素 6 的索引不存在 index2); // 输出-4插入点为 3-(3)-1-42指定范围查找binarySearch(int[] a, int fromIndex, int toIndex, int key)在指定区间内查找元素。int[] arr {1, 3, 5, 7, 9}; int index Arrays.binarySearch(arr, 1, 4, 7); // 在索引 1~3 区间查找 7 System.out.println(指定范围查找 7 的索引 index); // 输出33. 数组转换为字符串toString()将数组转换为友好的字符串格式[元素1, 元素2, ...]方便打印输出避免直接打印数组得到内存地址。// 基本类型数组 int[] intArr {1, 2, 3}; System.out.println(int 数组字符串 Arrays.toString(intArr)); // 输出[1, 2, 3] // 引用类型数组 String[] strArr {Java, Arrays}; System.out.println(String 数组字符串 Arrays.toString(strArr)); // 输出[Java, Arrays] // 二维数组使用 deepToString() int[][] twoDArr {{1, 2}, {3, 4}}; System.out.println(二维数组字符串 Arrays.deepToString(twoDArr)); // 输出[[1, 2], [3, 4]]注意一维数组用toString()多维数组用deepToString()否则多维数组会打印出子数组的内存地址。4. 数组填充fill()将指定值填充到数组的全部元素或指定区间的元素中用于快速初始化数组。1填充全部元素int[] arr new int[5]; Arrays.fill(arr, 10); // 将所有元素填充为 10 System.out.println(全部填充 10 Arrays.toString(arr)); // 输出[10, 10, 10, 10, 10]2填充指定区间元素fill(int[] a, int fromIndex, int toIndex, int val)填充从fromIndex包含到toIndex不包含的元素。int[] arr new int[5]; Arrays.fill(arr, 1, 4, 20); // 填充索引 1~3 的元素为 20 System.out.println(指定区间填充 20 Arrays.toString(arr)); // 输出[0, 20, 20, 20, 0]5. 数组复制copyOf()copyOfRange()用于快速复制数组避免手动使用循环复制效率更高。1copyOf()复制数组的前 N 个元素或扩容 / 缩容数组int[] srcArr {1, 2, 3, 4, 5}; // 1. 复制前 3 个元素 int[] copy1 Arrays.copyOf(srcArr, 3); System.out.println(复制前 3 个元素 Arrays.toString(copy1)); // 输出[1, 2, 3] // 2. 扩容数组长度大于原数组多余元素用默认值填充 int[] copy2 Arrays.copyOf(srcArr, 8); System.out.println(扩容数组 Arrays.toString(copy2)); // 输出[1, 2, 3, 4, 5, 0, 0, 0] // 3. 缩容数组长度小于原数组截取前 N 个元素 int[] copy3 Arrays.copyOf(srcArr, 2); System.out.println(缩容数组 Arrays.toString(copy3)); // 输出[1, 2]2copyOfRange()复制指定区间的元素int[] srcArr {1, 2, 3, 4, 5}; // 复制索引 1~3 的元素fromIndex 包含toIndex 不包含 int[] copyRange Arrays.copyOfRange(srcArr, 1, 4); System.out.println(复制指定区间元素 Arrays.toString(copyRange)); // 输出[2, 3, 4]6. 数组比较equals()deepEquals()用于比较两个数组是否相等元素数量相同、对应位置元素也相同。1equals()比较一维数组int[] arr1 {1, 2, 3}; int[] arr2 {1, 2, 3}; int[] arr3 {1, 3, 2}; System.out.println(arr1 与 arr2 相等 Arrays.equals(arr1, arr2)); // 输出true System.out.println(arr1 与 arr3 相等 Arrays.equals(arr1, arr3)); // 输出false2deepEquals()比较多维数组int[][] twoDArr1 {{1, 2}, {3, 4}}; int[][] twoDArr2 {{1, 2}, {3, 4}}; int[][] twoDArr3 {{1, 3}, {2, 4}}; System.out.println(二维数组 twoDArr1 与 twoDArr2 相等 Arrays.deepEquals(twoDArr1, twoDArr2)); // 输出true System.out.println(二维数组 twoDArr1 与 twoDArr3 相等 Arrays.deepEquals(twoDArr1, twoDArr3)); // 输出false注意比较的是数组的内存地址Arrays.equals()/deepEquals()比较的是数组的元素内容。7. 数组转集合asList()将数组转换为List集合注意返回的是固定大小的ArrayList不能添加 / 删除元素。// 基本类型数组转换注意需使用包装类数组否则会将整个数组作为一个元素 Integer[] intArr {1, 2, 3}; ListInteger list1 Arrays.asList(intArr); System.out.println(包装类数组转 List list1); // 输出[1, 2, 3] // 引用类型数组转换 String[] strArr {Java, Arrays}; ListString list2 Arrays.asList(strArr); System.out.println(String 数组转 List list2); // 输出[Java, Arrays] // 错误示例基本类型数组直接转换 int[] primitiveArr {1, 2, 3}; Listint[] list3 Arrays.asList(primitiveArr); System.out.println(基本类型数组错误转换 list3); // 输出[[Ixxxxxx]数组作为单个元素注意若需要可修改的 List可通过new ArrayList(Arrays.asList(arr))包装。三、完整使用示例import java.util.Arrays; import java.util.Comparator; import java.util.List; public class ArraysCompleteDemo { public static void main(String[] args) { // 1. 数组初始化 int[] baseArr {5, 2, 9, 1, 5, 6}; System.out.println(原始数组 Arrays.toString(baseArr)); // 2. 排序 Arrays.sort(baseArr); System.out.println(升序排序后 Arrays.toString(baseArr)); // 3. 二分查找 int target 5; int index Arrays.binarySearch(baseArr, target); System.out.println(元素 target 的索引 index); // 4. 数组复制 int[] copyArr Arrays.copyOf(baseArr, 4); System.out.println(复制前 4 个元素 Arrays.toString(copyArr)); // 5. 数组填充 int[] fillArr new int[5]; Arrays.fill(fillArr, 1, 4, 8); System.out.println(指定区间填充 8 Arrays.toString(fillArr)); // 6. 数组比较 int[] compareArr1 {1, 2, 5, 5}; int[] compareArr2 {1, 2, 5, 5}; System.out.println(两个数组是否相等 Arrays.equals(compareArr1, compareArr2)); // 7. 多维数组操作 int[][] twoDArr {{3, 1}, {2, 4}}; System.out.println(二维数组原始格式 Arrays.deepToString(twoDArr)); // 二维数组排序每行排序 for (int[] subArr : twoDArr) { Arrays.sort(subArr); } System.out.println(二维数组每行排序后 Arrays.deepToString(twoDArr)); // 8. 数组转 List String[] strArr {Spring, Boot, Java}; ListString strList Arrays.asList(strArr); System.out.println(数组转 List strList); } }运行结果原始数组[5, 2, 9, 1, 5, 6] 升序排序后[1, 2, 5, 5, 6, 9] 元素 5 的索引2 复制前 4 个元素[1, 2, 5, 5] 指定区间填充 8[0, 8, 8, 8, 0] 两个数组是否相等true 二维数组原始格式[[3, 1], [2, 4]] 二维数组每行排序后[[1, 3], [2, 4]] 数组转 List[Spring, Boot, Java]四、核心总结Arrays是java.util包下的静态工具类所有方法直接通过Arrays.方法名()调用核心功能分类排序sort()默认升序支持自定义比较器查找binarySearch()需先排序基于二分查找格式化toString()一维数组、deepToString()多维数组填充fill()快速初始化数组元素复制copyOf()复制前 N 个、copyOfRange()复制指定区间比较equals()一维数组、deepEquals()多维数组转集合asList()返回固定大小 List注意事项二分查找前必须排序否则结果无效多维数组需使用deepToString()/deepEquals()asList()返回的 List 不支持add()/remove()操作。