java.util.Arrays常用API

这是对数组进行相关操作的工具类,方法都是静态方法,直接使用类名调用

static String toString(Object[] a)

  • 返回指定数组的字符串形式
  • 还有很多重载方法,只是入参的数据类型不同
  • 底层采用的是StringBuilder的字符串拼接
  • 举例
public class demo {
    public static void main(String[] args) {
        int[] arrs = {1,2,3,4,5};
        System.out.println(arrs); //打印的是数组的内存地址[I@7c30a502
        System.out.println(Arrays.toString(arrs)); //[1, 2, 3, 4, 5]
    }
}

static void sort(Object[] a)

  • 对数组进行升序排序
  • 重载方法Arrays.sort(Object[] a, int formIndex, int toIndex)
    • 包含起始索引,不包含结束索引,将这两个索引范围间的数据进行升序排序
  • 底层采用的是性能较高的排序算法
  • 举例
public class demo {
    public static void main(String[] args) {
        int[] arrs = {8,4,5,6,9,2,0};
        //升序排序
        Arrays.sort(arrs);
        System.out.println(Arrays.toString(arrs)); //[0, 2, 4, 5, 6, 8, 9]
    }
}

static Object[] copyOf(Object[] original, int newLength)

  • 将原数组复制到一个长度为newLength长度的新数组
    • 空出来的位置补0或null
  • 返回值是复制后的新数组
  • 底层源码调用了System.arraycopy方法
  • 举例
public class demo {
    public static void main(String[] args) {
        int[] arrs = {1,2,3,4,5};
        int[] newArrs1 = Arrays.copyOf(arrs, 3);
        System.out.println(Arrays.toString(newArrs1)); //[1, 2, 3]
        int[] newArrs2 = Arrays.copyOf(arrs, 8);
        System.out.println(Arrays.toString(newArrs2)); //[1, 2, 3, 4, 5, 0, 0, 0]
    }
}

static Object[] copyOfRange(Object[] a, int form , int to)

  • 将一个数组的指定索引部分复制到一个新的数组
    • 包含起始索引,不包含结束索引
  • 结束索引超出被复制数组的长度,超出部分会补0或null
  • 如果结束索引比起始索引小,会抛出异常
  • 举例
public class demo {
    public static void main(String[] args) {
        int[] arrs = {1,2,3,4,5};
        int[] newArrs1 = Arrays.copyOfRange(arrs,0,3);
        int[] newArrs2 = Arrays.copyOfRange(arrs,1,10);
        int[] newArrs3 = Arrays.copyOfRange(arrs,5,2);
        System.out.println(Arrays.toString(newArrs1)); //[1, 2, 3]
        System.out.println(Arrays.toString(newArrs2)); //[2, 3, 4, 5, 0, 0, 0, 0, 0]
        //报错://Exception in thread "main" java.lang.IllegalArgumentException: 5 > 2
        System.out.println(Arrays.toString(newArrs3)); 
    }
}

猜你喜欢

转载自blog.csdn.net/future_god_qr/article/details/121174731
今日推荐