Java中Arrays类最常用方法包括sort()排序、binarySearch()查找、equals()比较、fill()填充、toString()转字符串和asList()转List,覆盖日常80%数组处理场景。

Java中Arrays类最常用的方法集中在数组的初始化、排序、查找、比较和转换上,核心是简化数组操作,避免手写循环。
数组排序:sort()方法支持多种类型和范围
Arrays.sort()是最高频使用的方法,可对基本类型数组(如int[]、double[])和对象数组(如String[])直接排序。默认升序,支持自定义Comparator;还提供重载版本,只对指定区间排序(如sort(arr, fromIndex, toIndex))。注意:对对象数组排序时,元素必须实现Comparable接口,或传入Comparator,否则运行时报ClassCastException。
- int[] nums = {3, 1, 4, 1, 5}; Arrays.sort(nums); // → {1, 1, 3, 4, 5}
- String[] words = {"banana", "apple", "cherry"}; Arrays.sort(words, Comparator.comparing(String::length));
- 对二维数组按首列排序:Arrays.sort(matrix, Comparator.comparingInt(a -> a[0]));
数组查找:binarySearch()要求前提明确
binarySearch()仅适用于已排序数组,未排序时结果不可预测。返回值为匹配元素索引(≥0),或插入点的负值(-(insertionPoint + 1))。支持所有基本类型和Object类型,对象查找需确保元素可比较(Comparable或传Comparator)。
- int[] arr = {1, 3, 5, 7, 9}; int idx = Arrays.binarySearch(arr, 5); // 返回2
- 若查4,返回-3(因为应插入在索引2位置,-(2+1) = -3)
- 查前务必确认数组已排序,否则建议先用sort()再查
数组内容比较与填充:equals()和fill()
Arrays.equals()深度比较两个数组是否“逻辑相等”(长度相同、对应位置元素相等),比==判断引用更实用;而Arrays.fill()用于批量赋值,支持全填或区间填充。
立即学习“Java免费学习笔记(深入)”;
- int[] a = {1, 2, 3}, b = {1, 2, 3}; System.out.println(Arrays.equals(a, b)); // true
- int[] c = {0, 0, 0, 0}; Arrays.fill(c, 1); // → {1, 1, 1, 1}
- Arrays.fill(c, 1, 3, 9); // 从索引1到2(不包含3)填9 → {1, 9, 9, 1}
数组转字符串与转List:toString()和asList()
Arrays.toString()将一维数组格式化为易读字符串(如"[1, 2, 3]"),避免打印出哈希值;Arrays.asList()把数组转为固定大小的List(底层仍指向原数组),注意它不支持add/remove等结构性修改,否则抛UnsupportedOperationException。
- int[] nums = {10, 20, 30}; System.out.println(Arrays.toString(nums)); // "[10, 20, 30]"
- String[] ss = {"a", "b", "c"}; List
list = Arrays.asList(ss); // 可遍历、修改元素,但不能增删 - 如需可变List,应写 new ArrayList(Arrays.asList(ss))
Arrays类是JDK内置的轻量级工具,无需额外依赖,方法均是静态的,调用简洁。熟练掌握这几个方法,能覆盖日常80%以上的数组处理场景。










