`

数组操作工具类Arrays

    博客分类:
  • Java
阅读更多
java.util.Arrays类中包含了用来操作数组(比如排序和搜索)的各种静态方法。此类还包含一个允许将数组作为列表来查看的静态工厂。除非特别注明,否则如果指定数组引用为 null,则此类中的方法都会抛出 NullPointerException。常用的静态方法如下:
sort(A[] a)方法:
public static void sort(A[] a)
对各种基本类型的数组进行调优了的快速排序,为升序排列。
A可以为long,int,float,char,byte,double,short型,甚至可以为String、Date类型。它具体实现是:调用了sort(a, 0, a.length)方法

sort(A[] a, int fromIndex, int toIndex)方法:
public static void sort(A[] a, int fromIndex, int toIndex)
对数组的一段范围内的元素进行升序排序。范围为:从fromIndex到toIndex-1。

binarySearch(byte[] a, byte key)方法:
public static int binarySearch(byte[] a, byte key) 
这个方法查询key元素值在a数组中出现的索引;如果a数组不包含key元素值,则返回-1.调用该方法时要求数组中元素已经按升序排列(调用sort()方法进行排序)。 
public static int binarySearch(A[] a, int fromIndex, int toIndex, A key)寻找一个范围的元素。返回int型的索引。

type[] copyOf(type[] original,int length)方法:
public static type[] copyOf(type[] original,int length)
这个方法将会把original数组复制成一个新数组,其中length是新数组的长度。如果length小于original数组的长度,则新数组就是原数组的前面length个元素;如果length大于original数组的长度,则新数组的前面元素就是原数组的所个元素,后面补充0(数值型)、false(布尔型)或者null(引用型)。 

boolean equals(byte[] a, byte[] a2)方法:
public static boolean equals(byte[] a, byte[] a2)
如果a数组和a2数组的长度相等,而且a数组和a2数组的数组元素也一一相同,该方法将返回true 

fill(byte[] a, byte val)方法:
public static void fill(byte[] a, byte val)
给数组中的每个元素填充相同的值val

fill(byte[] a, int fromIndex, int toIndex, byte val)方法:
public static void fill(byte[] a, int fromIndex, int toIndex, byte val)
在数组的从下表为fromIndex到toIndex-1的范围内,填充相同值val

String toString(int[] a)方法:
public static String toString(int[] a)
返回指定数组内容的字符串表示形式。字符串表示形式由数组的元素列表组成,括在方括号("[]")中。相邻元素用字符 ", "(逗号加空格)分隔。这些元素通过 String.valueOf(int) 转换为字符串。如果 a 为 null,则返回 "null"。 

例子:
public static void test(){
		int[] a = new int[5];   
        int[] b = new int[5];   
        Arrays.fill(a, 1);   
        Arrays.fill(b, 1);   
        System.out.println(Arrays.toString(a));//输出:[1, 1, 1, 1, 1]
        System.out.println(Arrays.toString(b));//输出:[1, 1, 1, 1, 1]
        System.out.println(Arrays.equals(a, b));//输出:true   
        b[2]=11;  b[3]=9;
        System.out.println(Arrays.toString(b));//输出:[1, 1, 11, 9, 1]
        System.out.println(Arrays.equals(a, b));//输出:false   
        Arrays.sort(b);   
        System.out.println(Arrays.toString(b));//输出:[1, 1, 1, 9, 11]
        System.out.println(Arrays.binarySearch(b, 11));//输出:4
        
        int[] c = {1,3,6,2,0,5};
        Arrays.sort(c,2,4);
        System.out.println(Arrays.toString(c));//输出:[1, 3, 2, 6, 0, 5]
        
        int[] d = new int[5];
        Arrays.fill(d, 0,3,2);
        System.out.println(Arrays.toString(d));//输出:[2, 2, 2, 0, 0]
}
分享到:
评论
Global site tag (gtag.js) - Google Analytics