这是对数组进行相关操作的工具类,方法都是静态方法,直接使用类名调用
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));
}
}