java util arrays 工具类简介

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;
	}
}

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。