Arrays类常用方法

import java.util.Random;
/**
 *     1)Arrays.fill() —— 只能用同一个值填充各个位置,而只对对象而言,就是复制同一个引用进行填充;
       2)Arrays.equals() —— 用于比较两个数组是否相等;
       3)Arrays.sort() —— 用于对数组排序;
       4)Arrays.binarySearch() —— 用于在已排序数组中利用二分查找法查找元素;
       5)Arrays.toString() —— 产生数组的String表示;
       6)Arrays.hashCode() —— 产生数组的散列码;
 * @author 2萌
 *
 */
public class TestArray {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		int[] array1 = new int[10];
		int[] array2 = new int[10];
		
		/**
		 * Arrays的fill(int[] array, int value)方法
		 * 实现的效果是将value填充到array数组里面对应的位置
		 */
		Arrays.fill(array1, 0);
		Arrays.fill(array2, 1);
		
		System.out.println("使用过Arrays.fill(array1, 0)后的效果");
		for (int i = 0; i < array1.length; i++) {			
			System.out.print(array1[i] + "  ");
		}
		System.out.println();
		System.out.println("-------------------------------");
		System.out.println("使用过Arrays.fill(array2, 1)后的效果");
		for (int i = 0; i < array2.length; i++) {
			System.out.print(array2[i] + "  ");
		}

		/**
		 * 判断数组是否是相等的--Arrays.equals() 
		 * 此处相等的判断,不仅长度相等而且数组存的值也是相等的
		 */
		System.out.println();
		System.out.println("-------------------------------");
		System.out.println("使用Arrays.equals()方法判断两个数组是否相等,如果相等返回true,不等则为false: " + Arrays.equals(array1, array2));
	
	
		/**
		 * 使用Random类,生成随机数存入array1[]数组
		 */
		for (int i = 0; i < array1.length; i++) {
			array1[i] = new Random().nextInt()%100;
		}
		System.out.println();
		System.out.println("-------------------------------");
		for (int i = 0; i < array1.length; i++) {			
			System.out.print(array1[i] + "  ");
		}
		System.out.println();
		System.out.println("-------------------------");
		/**
		 * System.arraycopy()数组复制
		 * System类提供了一个静态方法arraycopy(),这个方法的功能是实现数组直接的复制。
		 * 其原型函数为:public static void arraycopy(Object src, int srcPost, Object dest, int destPost, int length)
		 * src为源数组,srcPost为源数组开始复制的位置,dest为目标数组,destPost为目标数组开始复制的位置,length为复制的长度
		 * 其中:src和dest应该为同类型或者可以相互转换类型的数组
		 * 特殊:数组可以自己复制自己
		 *
		 */
		System.arraycopy(array1, 0, array2, 0, array1.length);
		System.out.println("array1");
		for (int i = 0; i < array1.length; i++) {			
			System.out.print(array1[i] + "  ");
		}
		System.out.println();
		System.out.println("array2");
		for (int i = 0; i < array2.length; i++) {			
			System.out.print(array2[i] + "  ");
		}
		
		System.out.println();
		System.out.println("---------自己复制自己-----------");
		//自己复制自己
		System.arraycopy(array1, 0, array1, 4, 3);
		for (int i = 0; i < array1.length; i++) {			
			System.out.print(array1[i] + "  ");
		}
		
		/**
		 * 数组转换成字符串
		 * Arrays.toString()
		 * !!!
		 */
		System.out.println();
		System.out.println("---------数组转换成字符串-----------");
		System.out.println("array1="+ Arrays.toString(array1));
		
		/**
		 * 数组排序Arrays.sort()
		 */
		System.out.println();
		System.out.println("-------数组排序Arrays.sort()------------");
		Arrays.sort(array2);
		for (int i = 0; i < array2.length; i++) {
			System.out.print(array2[i]+"  ");			
		}
		System.out.println();
		Arrays.sort(array1);
		for (int i = 0; i < array1.length; i++) {
			System.out.print(array1[i]+"  ");			
		}
		
		/**
		 * 二分查找Arrays.binarySearch()
		 * 根据二分查找如果找到返回key值对应的位置,否则则返回一个负数
		 */
		System.out.println();
		System.out.println("-------二分查找Arrays.binarySearch()-----------");
		System.out.println(Arrays.binarySearch(array1, 73));
	}
}
相关文章
相关标签/搜索