使用Arrays

 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方法的起止位置都是针对数组下标;

♦克隆的数组,原件和复件一方进行变动,另一方同步变动。

原文地址:https://www.cnblogs.com/celine/p/8306767.html