Arrays工具类的使用
java.util.Arrays类即为操作数组的工具类,包含了用来操作数组(比如排序和搜索)的各种方法。 比如:
数组元素拼接:
static String toString(int[] a) :字符串表示形式由数组的元素列表组成,括在方括号("[]")中。相邻元素用字符 ", "(逗号加空格)分隔。形式为:[元素1,元素2,元素3。。。]
static String toString(Object[] a) :字符串表示形式由数组的元素列表组成,括在方括号("[]")中。相邻元素用字符 ", "(逗号加空格)分隔。元素将自动调用自己从Object继承的toString方法将对象转为字符串进行拼接,如果没有重写,则返回类型@hash值,如果重写则按重写返回的字符串进行拼接。
int[] arr = {6, 9, 2, 9, 1, -3, 54, 45, 20}; //使用自带工具类遍历 System.out.println(arr);//地址值 System.out.println(Arrays.toString(arr));//[6, 9, 2, 9, 1, -3, 54, 45, 20]
比较两个数组是否相等:
static boolean equals(int[] a, int[] a2) :比较两个数组的长度、元素是否完全相同
static boolean equals(Object[] a,Object[] a2):比较两个数组的长度、元素是否完全相同
int[] arr = {6, 9, 2, 9}; int[] arr1 = {6, 9, 2, 9}; System.out.println(arr==arr1);//false System.out.println( Arrays.equals(arr,arr1));//true
填充数组:
static void fill(int[] a, int val) :用val值填充整个a数组
static void fill(Object[] a,Object val):用val对象填充整个a数组
static void fill(int[] a, int fromIndex, int toIndex, int val):将a数组[fromIndex,toIndex)部分填充为val值
static void fill(Object[] a, int fromIndex, int toIndex, Object val) :将a数组[fromIndex,toIndex)部分填充为val对象
int[] arr = {6, 9, 2, 9}; int[] arr1 = {6, 9, 2, 9}; Arrays.fill(arr, 1); System.out.println(Arrays.toString(arr));//[1, 1, 1, 1]
数组排序:
static void sort(int[] a) :将a数组按照从小到大进行排序
static void sort(int[] a, int fromIndex, int toIndex) :将a数组的[fromIndex, toIndex)部分按照升序排列
static void sort(Object[] a) :根据元素的自然顺序对指定对象数组按升序进行排序。
static void sort(T[] a, Comparator<? super T> c) :根据指定比较器产生的顺序对指定对象数组进行排序。
int[] arr = {6, 9, 2, 9}; int[] arr1 = {6, 9, 2, 9}; Arrays.sort(arr); System.out.println(Arrays.toString(arr));//[2, 6, 9, 9]
数组元素的二分查找:
static int binarySearch(int[] a, int key) 、static int binarySearch(Object[] a, Object key) :要求数组有序,在数组中查找key是否存在,如果存在返回第一次找到的下标,不存在返回负数。
int[] arr = {6, 9, 2, 9}; int[] arr1 = {6, 9, 2, 9}; Arrays.sort(arr); // System.out.println(Arrays.toString(arr));//[2, 6, 9, 9] System.out.println(Arrays.binarySearch(arr,3));//-2 System.out.println(Arrays.binarySearch(arr,9));//2