Arrays.binarySearch()二分查找
public static int binarySearch(int[] a, int key)
使用二分查找算法在数组范围内查找指定的值,返回该值在数组中的索引。
a—待搜索的数组(必须保证数组升序排列);key—要查找的值
如果要查找的值在数组中有多个,则不能保证返回的是其中哪一个的索引。
public static int binarySearch(int[] a, int fromIndex, int toIndex,int key)
fromIndex —要搜索的第一个元素的索引(包括) toIndex—要搜索的最后一个元素的索引(不包括)
如果key在数组中找不到,返回值不一定是-1,而是(-(插入点)- 1)
插入点是恰好能将key插入数组的点,比如:
10的插入点为9和11之间,索引是5,所以查找10时返回值为-5-1=-6
Arrays.sort() 数组排序
public static void sort(int[] a)
public static void sort(int[] a, int fromIndex, int toIndex)
将指定数组按升序排序。实现说明:快速排序,时间复杂度O(nlog(n))
第二个函数是对数组的指定范围进行排序 [fromIndex,toIndex)
Arrays.toString() Arrays.deepToString()数组转字符串
public static String toString(int[] a)
返回指定数组内容的字符串表示形式: 由数组元素的列表组成,用方括号("[]")括起来。相邻元素由逗号分隔。如果数组为null则返回“null”。
public static String deepToString(Object[] a)
用于将多维数组转换为字符串;例如:
Arrays.copyOf() 获取指定长度的副本
public static int[] copyOf(int[] original, int newLength)
返回数组指定长度的副本(如果源数组不够长,就补0;如果源数组太长,就截断);例如:
Arrays.copyOfRange()获取指定范围的副本
public static int[] copyOfRange(int[] original, int from, int to)
将源数组的指定范围复制到新数组;范围是【from,to),如果不够就补0