Arrays:数组工具类,用来操作数组
①主要方法:
1)sort(T[] arr):数组进行自然排序
2)public static <T> void sort(T[] a,Comparator</a><? super T> c):数组进行自定义排序
3)public static <T> List<T> asList(T... a):把数组转化为list集合
②:部分代码:
public static void main(String[] args) {
// TODO Auto-generated method stub
/*java.util.Arrays类能方便地操作数组,它提供的所有方法都是静态的。具有以下功能:
给数组赋值:通过fill方法。
对数组排序:通过sort方法,按升序。
比较数组:通过equals方法比较数组中元素值是否相等。
查找数组元素:通过binarySearch方法能对排序好的数组进行二分查找法操作。
*/
int arrInt[] = new int[10];
//填充数组
System.out.println("填充数组,3");
Arrays.fill(arrInt, 3);
output(arrInt);
//将数组的第2和第3个元素赋值为8
System.out.println("将数组的第2和第3个元素赋值为8");
Arrays.fill(arrInt, 2, 4, 8);
output(arrInt);
//对数组的第2个到第6个进行排序进行排序
System.out.println("对数组的第2个到第6个进行排序进行排序");
Arrays.sort(arrInt,2,7);
output(arrInt);
//对整个数组进行排序
System.out.println("对整个数组进行排序");
Arrays.sort(arrInt);
output(arrInt);
int array1[] = new int[]{1,3,3,4,6,5,7,8,9,0,11,12};
int array2[] = new int[]{1,2,3};
//比较数组元素是否相等(如果两个数组以相同顺序包含相同的元素,则两个数组是相等的。此外,如果两个数组引用都为 null,则认为它们是相等的。)
System.out.println("比较数组元素是否相等:Arrays.equals(array1, array2):"+"\n"+Arrays.equals(array1, array2));
array2 = array1.clone();
System.out.println("克隆后数组元素是否相等:Arrays.equals(array1, array2):"+"\n"+Arrays.equals(array1, array2));
//使用二分搜索算法查找指定元素所在的下标(必须是排序好的,否则结果不正确,如果数组包含多个等于指定对象的元素,则无法保证找到的是哪一个。 )
Arrays.sort(array1);
output(array1);
System.out.println("元素3在array1中的位置:Arrays.binarySearch(array1, 3):"+"\n"+Arrays.binarySearch(array1, 3));
//如果不存在就返回负数
System.out.println("元素9在arrInt中的位置:Arrays.binarySearch(arrInt, 9):"+"\n"+Arrays.binarySearch(arrInt, 9));
//转化为字符串
System.out.println("转化为字符串");
String str = Arrays.toString(array1);
System.out.println(str);
Dog arrDog[] = new Dog[4];
arrDog[0] = new Dog(3);
arrDog[1] = new Dog(1);
arrDog[2] = new Dog(0);
arrDog[3] = new Dog(2);
for(int i=0 ;i<arrDog.length;i++){
System.out.print(arrDog[i]+"\t");
}
System.out.println();
//按照自定义的比较器进行数组的排序
System.out.println("按照自定义的比较器进行数组的排序");
Arrays.sort(arrDog,new Comparator<Dog>(){
public int compare(Dog dog1,Dog dog2){
int age1 = dog1.getAge();
int age2 = dog2.getAge();
return age2-age1;
}
});
for(int i=0 ;i<arrDog.length;i++){
System.out.print(arrDog[i]+"\t");
}
}
/**
*
* @Title: output
* @Description:
* @param:
* @return void
* @user: wangzg
* @Date:2014-9-11
* @throws
*/
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();
}
}
class Dog{
private int age;
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public Dog(){
}
public Dog(int age){
this.age = age;
}
@Override
public String toString() {
String str = "[age:"+this.age+"]";
return str;
}