1. 程式人生 > 實用技巧 >Java中的Arrays工具類

Java中的Arrays工具類


快速排序(java.util.Arrays)

 快速排序是藉助於java.util包下的Arrays類來運算元組的,它提供的所有方法都是靜態的,具有以下功能:
  給陣列賦值:通過fill方法。
  對陣列排序:通過sort方法。
  陣列的比較:通過equals方法比較陣列中元素的值是否相等。
  查詢陣列元素:通過binarySearch方法能對排序好的陣列進行二分查詢法操作。

說明:

 1.public static int binarySearch(Object[] a,Object key)用二分查詢演算法在給定陣列中搜索給定值的物件(byte,int,double等)。陣列在呼叫前必須是排序好的,如果查詢值包含在陣列中,則返回搜尋鍵的索引;否則返回( -(插入點) - 1 )。

 2.public static boolean equals(long[] a,long[] a2)如果兩個指定的long型陣列彼此相等,則返回true,如果兩個陣列包含相同數量的元素,並且兩個陣列中的所有相應元素對都是相等的,則認為這兩個陣列是相等的。也就是說,如果兩個陣列以相同順序包含相同的元素,則兩個陣列是相等的。同樣的方法適用於所有的其他基本資料型別的陣列(byte,short,int等)。

 3.public static void fill(int[] a,int val)將指定的int值分配給指定的int型的陣列指定範圍中的每個元素。同樣的方法適用於所有的其他基本資料型別(byte,short,int等)。

 4.public static void sort(Object[] a)對指定物件陣列根據其元素的自然順序進行升序排列。同樣的方法適用於所有的其他基本資料型別(byte,short,int等)。

/*
* @author 劉小將
* 測試Arrays工具類
*/

import java.util.Arrays;

public class TestArrays{
      
      public static void output(int[] array){
            if(array!=null){
                  for(int i = 0;i < array.length;i++){
                        System.out.println(array[i]+"");
                  }
            }
            System.out.println();
      }

      //主方法(main)
      public static void main(String[] args){
            int[] array = new int[5];
            //填充陣列
            Arrays.fill(array,5);
            TestArrays.output(array);

            //將陣列的第2個和第3個元素賦值為8
            Arrays.fill(array,2,4,8);
            TestArrays.output(array);

            int[] array1 = {7,8,3,2,12,6,3,5,4};
            //對陣列的第2個到第6個進行排序
            Arrays.sort(array1,2,7);
            TestArrays.output(array1);
            
            //對整個陣列進行排序
            Arrays.sort(array1);
            TestArrays.output(array1);

            //比較陣列元素是否相等
            boolean b = Arrays.equals(array,array1);
            System.out.println(b);
            int[] array2 = array1.clone();
            TestArrays.output(array2);

            //使用二分搜尋演算法查詢(必須是排序好的,否則結果不正確)
            Arrays.sort(array1);
            //元素3在array1中的位置:Arrays.binarySearch(array1,3)            
            int temp = Arrays.binarySearch(array1,3);
            System.out.println(temp);
            //元素9在array1中的位置:Arrays.binarySearch(array1,9)
            //如果不存在就返回負數
            temp = Arrays.binarySearch(array1,9);
            System.out.println(temp);            

      }

}


執行結果如下:

5 5 5 5 5
5 5 8 8 5
7 8 2 3 3 6 12 5 4
2 3 3 4 5 6 7 8 12
false
2 3 3 4 5 6 7 8 12
1
-9