Java中提供了一个专门用于操作数组的工具类,即Arrays类,位于java.util包中。Arrays类包含各种操作数组的方法,比如排序和搜索,除此之外,Arrays类还包含一个静态工厂,允许将数组视为列表。Arrays类里的方法都是静态方法,我们可以通过Arrays.方法名()直接调用。
Arrays类的常用方法如下:
该方法是将数组转化为List集合的方法。
List<String>list=Arrays.asList(a,b,c);
注意:
1)该方法适用于对象型数据的数组(String、Integer、…)。
2)该方法不建议使用于基本数据类型的数组(byte、short、int、long、float、double、boolean)。
3)该方法将数组与List列表链接起来,当更新其中一个的时候,另一个自动更新。
4)不支持add()、remove()、clear()等方法。
在Java API中的public static void fill(Object[] a,int fromIndex,int toIndex,Object val)将指定的Object引用分配给指定Object数组指定范围中的每个元素,填充的范围从索引fromIndex(包括)一直到索引toIndex(不包括),如果fromIndex==toIndex,则填充范围为空。
1)Arrays.copyOf()
该方法传回的数组是新的数组对象,改变传回数组中的元素值,不会影响原来的数组,其中第一个变量表示原来的数组对象,第二个变量表示新的数组的长度,如果新的数组的长度超过原来的数组的长度,保留数组元素的默认基本类型的值。
2)Arrays.copyOfRange()
该方法用于对一个已有的数组进行截取复制,复制出一个左闭右开区间的数组。将一个原始的数组original,从下标from开始复制,复制到上标to,生成一个新的数组返回。
注意:这里包括from,不包括to,即[from,to)。
该方法用于比较判断两个数组元素是否相等,例如:
importjava.util.*;publicclassMain{publicstaticvoidmain(String[]args){int[]arr1={9,5,1,33};int[]arr2={9,5,1,33};System.out.println(arr1==arr2:+(arr1==arr2));//比较System.out.println(Arrays.equals(arr1,arr2):+Arrays.equals(arr1,arr2));}}
运行结果如下:
arr1==arr2:falseArrays.equals(arr1,arr2):true
该方法是Arrays类的静态方法,用于对数组进行排序,时间复杂度O(n*logn),方法返回值为void。排序后,数组中存放的是排序后的结果。
通过二分法在已经排好序的数组中查找指定的元素,并返回该元素的下标。如果该元素存在于数组中,则返回该元素在数组中的下标;如果该元素不存在于数组中,则返回-(插入点+1),这里的插入点指的是,如果该元素存在于数组中,该元素在数组中的下标。