1 package com.jdk7.chapter4; 2 3 import java.util.Arrays; 4 5 public class UsingArrays { 6 public static void printIntArray(int[] arrays){ 7 if(arrays!=null){ 8 for(int i=0;i<arrays.length;i++){ 9 System.out.print(arrays[i]+" "); 10 } 11 System.out.println(); 12 } 13 } 14 public static void main(String[] args) { 15 int[] array0 = new int[5]; 16 System.out.print("数组array0全部赋值为5: "); 17 Arrays.fill(array0, 5); //调用fill方法给数组全部赋值为5 18 printIntArray(array0); 19 System.out.print("数组array0下标[2,3]赋值为8: "); 20 Arrays.fill(array0, 2, 4, 8); //调用fill方法给数组下标2到3位赋值为8 21 printIntArray(array0); 22 23 int[] array1 = new int[] {3,9,4,6,5,2}; 24 System.out.print("数组array1: "); 25 printIntArray(array1); 26 System.out.println("未排序进行二叉查找数组array1中2的位置: "+Arrays.binarySearch(array1, 2)); 27 System.out.print("数组array1下标[2,4]进行排序: "); 28 Arrays.sort(array1, 2, 5); //调用sort方法给数组下标2到4位排序 29 printIntArray(array1); 30 System.out.print("数组array1进行排序: "); 31 Arrays.sort(array1); //调用sort方法给数组排序 32 printIntArray(array1); 33 34 System.out.print("数组array0和数组array1的值是否相等: "); 35 System.out.println("array0 = array1: "+Arrays.equals(array0, array1)); //调用equals比较两个数组中的数值 36 37 int[] array2 = (int[])array0.clone(); 38 System.out.print("克隆数组array0为array2,数组array0和数组array2的值是否相等: "); 39 System.out.println("array0 = array2: "+Arrays.equals(array0, array2)); 40 //克隆后原件和复件任意一个改变,另一个同步改变 41 // Arrays.fill(array2, 2, 4, 8); 42 Arrays.fill(array0, 2, 4, 8); 43 printIntArray(array0); 44 printIntArray(array2); 45 System.out.print("数组array2下标2赋值为8,数组array0和数组array2的值是否相等: "); 46 System.out.println("array0 = array2: "+Arrays.equals(array0, array2)); 47 48 printIntArray(array1); 49 //在数组最新状态中二叉查找指定值的下标 50 System.out.println("排序后二叉查找数组array1中4的位置: "+Arrays.binarySearch(array1, 4)); 51 System.out.println("排序后二叉查找数组array1中2的位置: "+Arrays.binarySearch(array1, 2)); 52 } 53 } 54 55 执行结果: 56 数组array0全部赋值为5: 5 5 5 5 5 57 数组array0下标[2,3]赋值为8: 5 5 8 8 5 58 数组array1: 3 9 4 6 5 2 59 未排序进行二叉查找数组array1中2的位置: -1 60 数组array1下标[2,4]进行排序: 3 9 4 5 6 2 61 数组array1进行排序: 2 3 4 5 6 9 62 数组array0和数组array1的值是否相等: array0 = array1: false 63 克隆数组array0为array2,数组array0和数组array2的值是否相等: array0 = array2: true 64 5 5 8 8 5 65 5 5 8 8 5 66 数组array2下标2赋值为8,数组array0和数组array2的值是否相等: array0 = array2: true 67 2 3 4 5 6 9 68 排序后二叉查找数组array1中4的位置: 2 69 排序后二叉查找数组array1中2的位置: 0
总结:
?排序后才能在数组中进行二分法查找元素的位置;
?fill和sort方法的起止位置都是针对数组下标;
?克隆的数组,原件和复件一方进行变动,另一方同步变动。