Java中Arrays类的常用方法

一、Arrays类的定义

  • Arrays类位于 java.util 包中,主要包含了操纵数组的各种方法。

二、Arrays 类的常用方法

  • Arrays.toString(Object[] array)
    • 返回数组元素的字符串形式。
      Integer[] data = {1, 2, 3};
      System.out.println(Arrays.toString(data)); // [1, 2, 3]
      

  • Arrays.fill(Object[] array, Object obj)
    • 用指定元素填充整个数组 (会替换掉数组中原来的元素)。
      Integer[] data = {1, 2, 3, 4};
      Arrays.fill(data, 9);
      System.out.println(Arrays.toString(data)); // [9, 9, 9, 9]
      
  • Arrays.fill(Object[] array, int fromIndex, int toIndex, Object obj)
    • 用指定元素填充数组,从起始位置到结束位置, 左闭右开区间,取头不取尾 (会替换掉数组中原来的元素)。
      Integer[] data = {1, 2, 3, 4};
      Arrays.fill(data, 0, 2, 9);
      System.out.println(Arrays.toString(data)); // [9, 9, 3, 4]
      

  • Arrays.sort(Object[] array)
    • 对数组元素进行排序 (串行排序)
      String[] data = {"1", "4", "3", "2"};
      System.out.println(Arrays.toString(data)); // [1, 4, 3, 2]
      Arrays.sort(data);
      System.out.println(Arrays.toString(data)); // [1, 2, 3, 4]
      
  • Arrays.sort(Object[] array, int fromIndex, int toIndex)
    • 对指定范围内的数组元素进行排序 (左闭右开、串行排序)
      String[] data = {"1", "4", "3", "2"};
      System.out.println(Arrays.toString(data)); // [1, 4, 3, 2]
      // 对下标[0, 3)的元素进行排序,即对1,4,3进行排序,2保持不变
      Arrays.sort(data, 0, 3);
      System.out.println(Arrays.toString(data)); // [1, 3, 4, 2]
      

  • Arrays.binarySearch(Object[] array, Object key)
    注意:在调用该方法之前,必须先调用 Arrays.sort() 方法进行排序,如果数组没有排序,那么结果是不确定的,此外如果数组中包含多个指定元素,则无法保证将找到哪个元素。
    • 使用二分法查找数组内指定元素的索引值。
      • 搜索元素是数组元素,返回该元素索引值。
        Integer[] data = {1, 3, 5, 7};
        Arrays.sort(data);
        System.out.println(Arrays.binarySearch(data, 1)); // 0
        
      • 搜索元素不是数组元素,且小于数组中的最小值。
        Integer[] data = {1, 3, 5, 7};
        Arrays.sort(data);
        // 此时程序会把数组看作 {0, 1, 3, 5, 7}
        // 此时0的索引值为0,则搜索0时返回 -(0 + 1) = -1
        System.out.println(Arrays.binarySearch(data, 0)); // -1
        
      • 搜索元素不是数组元素,且大于数组中的最大值。
        Integer[] data = {1, 3, 5, 7};
        Arrays.sort(data);
        // 此时程序会把数组看作 {1, 3, 5, 7, 9}
        // 此时9的索引值为4,则搜索8时返回 -(4 + 1) = -5
        System.out.println(Arrays.binarySearch(data, 9)); // -5
        
      • 搜索元素不是数组元素,但在数组范围内。
        Integer[] data = {1, 3, 5, 7};
        Arrays.sort(data);
        // 此时程序会把数组看作 {1, 2, 3, 5, 7}
        //此时2的索引值为1,则搜索2时返回 -(1 + 1) = -2
        System.out.println(Arrays.binarySearch(data, 2)); // -2
        
  • Arrays.binarySearch(Object[] array, int fromIndex, int toIndex, Object obj)
    • 使用二分法查找数组内指定范围内的指定元素的索引值。
      Integer[] data = {1, 3, 5, 7};
      Arrays.sort(data);
      // {1, 3},3的索引值为1
      System.out.println(Arrays.binarySearch(data, 0, 2, 3)); // 1
      

  • Arrays.equals(Object[] array1, Object[] array2)
    • 判断两个数组是否相等。
      • 数组元素为基本数据类型时,依次比较值。
      • 数组元素为引用数据类型时,依次调用元素的 equals() 方法进行比较。
    • 即如果两个数组被认为是相等的,则两个数组中应包含相同顺序的相同元素。
      Integer[] data1 = {1, 2, 3};
      Integer[] data2 = {1, 2, 3};
      System.out.println(Arrays.equals(data1, data2)); // true
      
  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值