java.util.Arrays
java.util包下的Arrays类时Java提供给我们用来操作数组的,它提供的所有方法都是静态的,具有以下功能:
给数组赋值:通过fill方法。
对数组排序:通过sort方法。
数组的比较:通过equals方法比较数组中元素的值是否相等。
查找数组元素:通过binarySearch方法能对排序好的数组进行二分查找法操作。
说明:
1.public static int binarySearch(Object[] a,Object key)用二分查找算法在给定数组中搜索给定值的对象(byte,int,double等)。数组在调用前必须是排序好的,如果查找值包含在数组中,则返回搜索键的索引;否则返回( -(插入点) - 1 )。
2.public static boolean equals(long[] a,long[] a2)如果两个指定的long型数组彼此相等,则返回true,如果两个数组包含相同数量的元素,并且两个数组中的所有相应元素对都是相等的,则认为这两个数组是相等的。也就是说,如果两个数组以相同顺序包含相同的元素,则两个数组是相等的。同样的方法适用于所有的其他基本数据类型的数组(byte,short,int等)。
3.public static void fill(int[] a,int val)将指定的int值分配给指定的int型的数组指定范围中的每个元素。同样的方法适用于所有的其他基本数据类型(byte,short,int等)。
4.public static void sort(Object[] a)对指定对象数组根据其元素的自然顺序进行升序排列。同样的方法适用于所有的其他基本数据类型(byte,short,int等)。
/*
* @author 刘小将
* 测试Arrays工具类
*/
import java.util.Arrays;
public class TestArrays{
public static void output(int[] array){
if(array!=null){
for(int i = 0;i < array.length;i++){
System.out.print(array[i]+"");
}
}
System.out.println();
}
//主方法(main)
public static void main(String[] args){
int[] array = new int[5];
//填充数组
Arrays.fill(array,5);
TestArrays.output(array);
//将数组的第2个和第3个元素赋值为8
Arrays.fill(array,2,4,8);
TestArrays.output(array);
int[] array1 = {7,8,3,2,12,6,3,5,4};
//对数组的第2个到第6个进行排序
Arrays.sort(array1,2,7);
TestArrays.output(array1);
//对整个数组进行排序
Arrays.sort(array1);
TestArrays.output(array1);
//比较数组元素是否相等
boolean b = Arrays.equals(array,array1);
System.out.println(b);
int[] array2 = array1.clone();
TestArrays.output(array2);
//使用二分搜索算法查找(必须是排序好的,否则结果不正确)
Arrays.sort(array1);
//元素3在array1中的位置:Arrays.binarySearch(array1,3)
int temp = Arrays.binarySearch(array1,3);
System.out.println(temp);
//元素9在array1中的位置:Arrays.binarySearch(array1,9)
//如果不存在就返回负数
temp = Arrays.binarySearch(array1,9);
System.out.println(temp);
}
}
运行结果如下:
5 5 5 5 5
5 5 8 8 5
7 8 2 3 3 6 12 5 4
2 3 3 4 5 6 7 8 12
false
2 3 3 4 5 6 7 8 12
1
-9