import java.util.Arrays; import java.util.Comparator; public class ArraysTest { /** * @Title: main * @Description: * @param: * @return void * @user: wangzg * @Date:2014-9-11 * @throws */ 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; } }
时间: 2024-10-12 20:37:15