Arrays類詳解


Arrays類詳解

前言:Arrays類包含用來操作數組(比如排序和搜索) 的各種方法,因為數組本身沒有相應的類與方法

除非特別注明,否則如果指定數組引用為 null,則此類中的方法都會拋出 NullPointerException

常用方法(靜態static)

  1. public static String toString(int[] a) 
    

    返回指定數組內容的字符串表示形式

public static void main(String[] args) {
  // 定義int 數組
  int[] arr  =  {2,34,35,4,657,8,69,9};
  // 打印數組,輸出地址值
  System.out.println(arr); // [I@2ac1fdc4
  // 數組內容轉為字符串
  String s = Arrays.toString(arr);
  // 打印字符串,輸出內容
  System.out.println(s); // [2, 34, 35, 4, 657, 8, 69, 9]
}
  1. public static void sort(int[]  a) 
    

    對指定的 int 型數組按數字升序進行排序

public static void main(String[] args) {
  // 定義int 數組
  int[] arr  =  {24, 7, 5, 48, 4, 46, 35, 11, 6, 2};
  System.out.println("排序前:"+ Arrays.toString(arr)); // 排序前:[24, 7, 5, 48, 4, 46, 35, 11, 6,
2]
  // 升序排序
  Arrays.sort(arr);
  System.out.println("排序后:"+ Arrays.toString(arr));// 排序后:[2, 4, 5, 6, 7, 11, 24, 35, 46,
48]
}

3 .

public static int binarySearch(int[] a,int key)

​ 使用二分搜索法來搜索指定的 int 型數組,以獲得指定的值。必須在進行此調用之前對數組進行排序(通過 sort(int[]) 方法)。如果沒有對數組進行排序,則結果是不確定的。如果數組包含多個帶有指定值的元素,則無法保證找到的是哪一個。

  /**
         * System.out.println(arr);
         *         System.out.println(Arrays.binarySearch(arr,7));
         *         System.out.println("------------");
         *         for (int i : arr) {
         *             System.out.println(i);
         *         }
         *         System.out.println("----------------");
         *			//先排序
         *         Arrays.sort(arr);
         *         for (int i : arr) {
         *             System.out.println(i);
         *         }
         *         System.out.println("-----------");
         *         //二分查找法
         *         int i = Arrays.binarySearch(arr,7);
         *         System.out.println(i);
         */

4 .

public static void fill(int[] a,int val)

​ 將指定的 int 值分配給指定 int 型數組的每個元素。

int[] arr = {1,2,45,56,67,6,7,8};

        Arrays.fill(arr,9);

5 .

public static boolean equals(byte[] a, byte[] a2)

如果兩個指定的 byte 型數組彼此相等,則返回 true。如果兩個數組包含相同數量的元素,並且兩個數組中的所有相應元素對都是相等的,則認為這兩個數組是相等的。換句話說,如果兩個數組以相同順序包含相同的元素,則兩個數組是相等的。此外,如果兩個數組引用都為 null,則認為它們是相等的。

6 .

public static int hashCode(short[] a)

基於指定數組的內容返回哈希碼。對於任何兩個滿足 Arrays.equals(a, b) 的 short 型數組 a 和 b,也可用說 Arrays.hashCode(a) == Arrays.hashCode(b)。

練習

使用 Arrays 相關的API,將一個隨機字符串中的所有字符升序排列,並倒序打印。

public class ArraysTest {
  public static void main(String[] args) {
    // 定義隨機的字符串
    String line = "ysKUreaytWTRHsgFdSAoidq";
    // 轉換為字符數組
    char[] chars = line.toCharArray();
    // 升序排序
    Arrays.sort(chars);
    // 反向遍歷打印
    for (int i =  chars.length‐1; i >= 0 ; i‐‐) {
      System.out.print(chars[i]+" "); // y y t s s r q o i g e d d a W U T S R K H F A
    }
  }
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM