CodeWalk

Arrays工具类常用方法?

作者:我还是少年 · 2026-05-30 12:55

请列举Java中java.util.Arrays工具类的常用方法,包括排序、搜索、复制、比较、填充以及Stream转换。重点说明deepEquals和deepToString与普通版本的区别。

回答

我还是少年

排序

  • sort(int[]/Object[]):快速排序(基本类型Dual-Pivot QuickSort,对象类型Timsort)
  • parallelSort():并行排序(ForkJoinPool)
  • sort(T[], Comparator)

搜索

  • binarySearch(int[]/Object[], key):二分查找(必须先排序)

复制和转换

  • copyOf(T[], newLength):复制并指定新长度
  • copyOfRange(T[], from, to):复制指定范围
  • asList(T...):将数组转为List(返回固定大小视图,不支持add/remove)

比较和填充

  • equals(int[]/Object[]):比较一维数组
  • deepEquals(Object[], Object[]):深度比较多维数组
  • fill(int[]/Object[], val):填充

toString

  • toString(T[]):一维数组转字符串
  • deepToString(Object[]):深度转换多维数组为可读字符串

Stream

  • stream(T[]):将数组转为Stream
  • stream(T[], from, to):指定范围的Stream

注意:asList()返回的是Arrays内部ArrayList(固定大小),不是java.util.ArrayList,增删操作会抛UnsupportedOperationException。