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