Arrays工具类常用方法?
请列举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。