一篇帮你搞定Arrays工具类!!!
一、引言最近在刷算法题的时候用到了很多次Arrays的方法因此写一篇博客来整理一下相关用法二、介绍java.util.Arrays是 Java 提供的数组操作工具类包含了数组排序、查找、复制、比较、打印、填充等常用静态方法无需创建对象没有构造方法直接通过类名调用即可。三、常用核心方法1.toString将数组转成固定形式的字符串如果直接打印数组会输出地址值用该方法可以输出数组元素内容import java.util.Arrays; public class ArraysDemo { public static void main(String[] args) { int[] arr {1, 3, 5, 2, 4}; // 直接打印输出地址 [Ixxxx System.out.println(arr); // 格式化打印[1, 3, 5, 2, 4] System.out.println(Arrays.toString(arr)); } }2.binarySearch数组元素查找利用二分查找方式前提是数组必须是升序的找到查找的元素后返回索引找不到则返回 -插入点-1插入点是指查找元素若存在数组里的位置索引int[] arr {1,2,3,4,5}; // 查找元素 3返回索引 2 int index Arrays.binarySearch(arr, 3); System.out.println(index); // 查找不存在的元素返回负数 int notFound Arrays.binarySearch(arr, 6); System.out.println(notFound);3.copyOf/copyOfRangecopyOf(原数组, 新长度)复制数组到指定长度注意若新长度大于原数组长度则在多出来的位置填充 0若新长度小于原数组长度则取前面新长度个数的值copyOfRange(原数组, 起始索引, 结束索引)复制指定范围int[] arr {1,2,3,4,5}; // 复制全部新长度原长度 int[] copy1 Arrays.copyOf(arr, arr.length); // [1,2,3,4,5] System.out.println(Arrays.toString(copy1)); // 复制前3个元素 int[] copy2 Arrays.copyOf(arr, 3); // [1,2,3] System.out.println(Arrays.toString(copy2)); // 复制索引 1~3左闭右开 int[] copy3 Arrays.copyOfRange(arr, 1, 4); // [2,3,4] System.out.println(Arrays.toString(copy3));4.fill用指定值填充 / 覆盖数组全部 / 部分元素int[] arr new int[5]; // 全部填充为 10 Arrays.fill(arr, 10); // [10, 10, 10, 10, 10] System.out.println(Arrays.toString(arr)); // 索引 1~3 填充为 20 Arrays.fill(arr, 1, 4, 20); // [10, 20, 20, 20, 10] System.out.println(Arrays.toString(arr));5.equals比较两个数组长度元素值是否完全一致int[] a {1,2,3}; int[] b {1,2,3}; int[] c {1,3,2}; // true System.out.println(Arrays.equals(a, b)); // false System.out.println(Arrays.equals(a, c));6.sort有两种核心用法默认升序排序Arrays.sort(arr)直接传数组默认升序排序适用于基本类型数组自定义排序规则Arrays.sort(arrcomparator)自己指定排序规则比如降序重点是只能给引用数据类型的数组进行排序若数组是基本数据类型需要将其变成包装类//方式一 int[] arr {3,1,5,2,4}; Arrays.sort(arr); // 默认升序 System.out.println(Arrays.toString(arr)); // 输出 [1, 2, 3, 4, 5] //方式二普通写法 Integer[] arr {3,1,5,2,4}; Arrays.sort(arr, Collections.reverseOrder()); // 降序排列 System.out.println(Arrays.toString(arr)); // 输出 [5, 4, 3, 2, 1] //方式二Lambda表达式 Integer[] arr {3,1,5,2,4}; // 降序 Arrays.sort(arr, (a, b) - b - a); // 等价写法 // Arrays.sort(arr, (a, b) - Integer.compare(b, a));四、总结Arrays是静态工具类所有方法直接用Arrays.方法名()调用常用高频方法toString()(打印)、sort()(排序)、binarySearch()(查找)、copyOf()(复制)五、小舟有话说如果觉得内容不错的话可以点点关注下一篇会讲述Lambda表达式哦~
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2470626.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!