java util arrays 工具类简介

18 篇文章 0 订阅
7 篇文章 0 订阅

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








  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值