国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

J2SE綜合:對java.util的總結 六

2019-11-18 11:54:15
字體:
來源:轉載
供稿:網友

  15.9 Arrays (數組)
  
  java 2在java.util中新增加了一個叫做Arrays的類。這個類提供了各種在進行數組運算時很有用的方法。盡管這些方法在技術上不屬于類集框架,但它們提供了跨越類集和數組的橋梁。在這一節中,分析由Arrays定義的每一種方法。
  
  asList( )方法返回一個被指定數組支持的List.換句話說,列表和數組訪問的是同一個單元。它具有如下的形式:
  
  static List asList(Object[ ] array)
  
  這里array是包含了數據的數組。
  
  binarySearch( )方法使用二進制搜索尋找指定的值。該方法必須應用于排序數組。它具有如下的形式:
  
  static int binarySearch(byte[ ] array, byte value)
  
  static int binarySearch(char[ ] array, char value)
  
  static int binarySearch(double[ ] array, double value)
  
  static int binarySearch(float[ ] array, float value)
  
  static int binarySearch(int[ ] array, int value)
  
  static int binarySearch(long[ ] array, long value)
  
  static int binarySearch(short[ ] array, short value)
  
  static int binarySearch(Object[ ] array, Object value)
  
  static int binarySearch(Object[ ] array, Object value, Comparator c)
  
  這里,array是被搜索的數組,而value是被查找的值。當array中包含的元素是不可比較的(例如Double和StringBuffer)或者當value與array中的類型不兼容時,后兩種形式引發一個ClassCastException異常。在最后一種形式中,比較函數(Comparator)c用于確定array中的元素的順序。在所有的形式中,假如array中含有value,則返回該元素的下標。否則,返回一個負值。
  
  當兩個數組相等時,equals( )方法返回true;否則返回false.equals( )方法具有下面的一些形式:
  
  static boolean equals(boolean array1[ ], boolean array2[ ])
  
  static boolean equals(byte array1[ ], byte array2[ ])
  
  static boolean equals(char array1[ ], char array2[ ])
  
  static boolean equals(double array1[ ], double array2[ ])
  
  static boolean equals(float array1[ ], float array2[ ])
  
  static boolean equals(int array1[ ], int array2[ ])
  
  static boolean equals(long array1[ ], long array2[ ])
  
  static boolean equals(short array1[ ], short array2[ ])
  
  static boolean equals(Object array1[ ], Object array2[ ])
  
  這里array1和array2是兩個用來比較看是否相等的數組。
  
  fill( )方法將一個值賦給數組中的所有元素。換句話說,它用一個指定的值填充數組。
  
  fill( )方法有兩種形式。第一種形式具有下面的一些形式,填充整個數組:
  
  static void fill(boolean array[ ], boolean value)
  
  static void fill(byte array[ ], byte value)
  
  static void fill(char array[ ], char value)
  
  static void fill(double array[ ], double value)
  
  static void fill(float array[ ], float value)
  
  static void fill(int array[ ], int value)
  
  static void fill(long array[ ], long value)
  
  static void fill(short array[ ], short value)
  
  static void fill(Object array[ ], Object value)
  
  這里value被賦給數組array中的每一個元素。
  
  fill( )方法的第二種形式將一個值賦給數組的一個子集。它的幾種形式如下:
  
  static void fill(boolean array[ ], int start, int end, boolean value)
  
  static void fill(byte array[ ], int start, int end, byte value)
  
  static void fill(char array[ ], int start, int end, char value)
  
  static void fill(double array[ ], int start, int end, double value)
  
  static void fill(float array[ ], int start, int end, float value)
  
  static void fill(int array[ ], int start, int end, int value)
  
  static void fill(long array[ ], int start, int end, long value)
  
  static void fill(short array[ ], int start, int end, short value)
  
  static void fill(Object array[ ], int start, int end, Object value)
  
  這里,value是賦給數組array中從start開始到end?1結束的子集的值。這些方法當start大于end時,都能引發一個IllegalArgumentException異常;而當start或end出界時,都能引發一個ArrayIndexOutOfBoundsException異常。
  
  sort( )方法對數組進行排序,以便數組能夠按升序進行排列。sort( )方法有兩種形式。
  
  下面給出的第一種形式對整個數組進行排序:
  
  static void sort(byte array[ ])
  
  static void sort(char array[ ])
  
  static void sort(double array[ ])
  
  static void sort(float array[ ])
  
  static void sort(int array[ ])
  
  static void sort(long array[ ])
  
  static void sort(short array[ ])
  
  static void sort(Object array[ ])
  
  static void sort(Object array[ ], Comparator c)
  
  這里,array是被排序的數組。在最后的一種形式中,c是一個用來規定array中元素順序的比較函數(Comparator)。當用于排序的數組中的元素不可比較時,這些對Object的數組進行排序的sort( )方法將引發一個ClassCastException異常。
  
  sort( )方法的第二種形式答應在一個數組內,指定一個想要進行排序的范圍。它的具體形式如下:
  
  static void sort(byte array[ ], int start, int end)
  
  static void sort(char array[ ], int start, int end)
  
  static void sort(double array[ ], int start, int end)
  
  static void sort(float array[ ], int start, int end)
  
  static void sort(int array[ ], int start, int end)
  
  static void sort(long array[ ], int start, int end)
  
  static void sort(short array[ ], int start, int end)
  
  static void sort(Object array[ ], int start, int end)
  
  static void sort(Object array[ ], int start, int end, Comparator c)
  
  這里,數組中想要進行排序的范圍從start到end?1.在最后一種形式中,c是一個用來規定array中元素順序的Comparator.假如start大于end ,所有這些方法都能引發一個IllegalArgumentException 異常; 而當start 或end 出界時, 又都能引發一個ArrayIndexOutOfBoundsException異常。當用于排序的數組中的元素不可比較時,最后兩種形式也能引發一個ClassCastException異常。
  
  下面的程序舉例說明了如何使用Arrays類中的一些方法:
  
  // Demonstrate Arrays
  
  import java.util.*;
  
  class ArraysDemo {
  
  public static void main(String args[]) {
  
  // allocate and initialize array
  
  int array[] = new int[10];
  
  for(int i = 0; i < 10; i++)
  
  array[i] = -3 * i;
  
  // display, sort, display
  
  System.out.  
  display(array);
  
  Arrays.sort(array);
  
  System.out.print("Sorted: ");
  
  display(array);
  
  // fill and display
  
  Arrays.fill(array, 2, 6, -1);
  
  System.out.print("After fill(): ");
  
  display(array);
  
  // sort and display
  
  Arrays.sort(array);
  
  System.out.print("After sorting again: ");
  
  display(array);
  
  // binary search for -9
  
  System.out.print("The value -9 is at location ");
  
  int index =
  
  Arrays.binarySearch(array, -9);
  
  System.out.println(index);
  
  }
  
  static void display(int array[]) {
  
  for(int i = 0; i < array.length; i++)
  
  System.out.print(array[i] + " ");
  
  System.out.println("");
  
  }
  
  }
  
  下面是該程序的輸出結果:
  
  Original contents: 0 -3 -6 -9 -12 -15 -18 -21 -24 -27
  
  Sorted: -27 -24 -21 -18 -15 -12 -9 -6 -3 0
  
  After fill(): -27 -24 -1 -1 -1 -1 -9 -6 -3 0
  
  After sorting again: -27 -24 -9 -6 -3 -1 -1 -1 -1 0
  
  The value -9 is at location 2

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 达孜县| 安新县| 广昌县| 包头市| 顺义区| 阳山县| 三门县| 江城| 新宁县| 文水县| 屏山县| 临漳县| 布尔津县| 抚顺县| 无为县| 股票| 台东县| 永清县| 靖远县| 诸城市| 象山县| 阳原县| 治县。| 余姚市| 巨鹿县| 嘉兴市| 万年县| 堆龙德庆县| 苍南县| 洛阳市| 象州县| 福泉市| 三明市| 府谷县| 涡阳县| 沙田区| 阳泉市| 泗洪县| 无为县| 五莲县| 峡江县|