数组工具类
java.util.Arrays数组工具类,提供了很多静态方法来对数组进行操作,而且如下每一个方法都有各种重载形式,以下只列出int[]类型的,其他类型的数组类推:
-
static int binarySearch(int[] a, int key) :要求数组有序,在数组中查找key是否存在,如果存在返回第一次找到的下标,不存在返回负数
-
static int[] copyOf(int[] original, int newLength) :根据original原数组复制一个长度为newLength的新数组,并返回新数组
-
static int[] copyOfRange(int[] original, int from, int to) :复制original原数组的[from,to)构成新数组,并返回新数组
-
static boolean equals(int[] a, int[] a2) :比较两个数组的长度、元素是否完全相同
-
static void fill(int[] a, int val) :用val填充整个a数组
-
static void fill(int[] a, int fromIndex, int toIndex, int val):将a数组[fromIndex,toIndex)部分填充为val
-
static void sort(int[] a) :将a数组按照从小到大进行排序
-
static void sort(int[] a, int fromIndex, int toIndex) :将a数组的[fromIndex, toIndex)部分按照升序排列
-
static String toString(int[] a) :把a数组的元素,拼接为一个字符串,形式为:[元素1,元素2,元素3。。。]
public class Test {
public static void main(String[] args) {
int[] arr = new int[5]; // 打印数组,输出地址值
System.out.println(arr); // [I@677327b6
//数组内容转为字符串
System.out.println("arr数组初始状态:" + Arrays.toString(arr));//arr数组初始状态:[0, 0, 0, 0, 0]
Arrays.fill(arr, 3);
System.out.println("arr数组现在状态:" + Arrays.toString(arr));//arr数组现在状态:[3, 3, 3, 3, 3]
Random rand = new Random();
for (int i = 0; i < arr.length; i++) {
arr[i] = rand.nextInt(100);//赋值为100以内的随机整数
}
System.out.println("arr数组现在状态:" + Arrays.toString(arr));//arr数组现在状态:[68, 9, 5, 8, 8]
int[] arr2 = Arrays.copyOf(arr, 10);
System.out.println("新数组:" + Arrays.toString(arr2));//新数组:[68, 9, 5, 8, 8, 0, 0, 0, 0, 0]
System.out.println("两个数组的比较结果:" + Arrays.equals(arr, arr2));//两个数组的比较结果:false
Arrays.sort(arr);
System.out.println("arr数组现在状态:" + Arrays.toString(arr));//arr数组现在状态:[5, 8, 8, 9, 68]
}
}