一、概述
java.util.Arrays 此类包含用来操作数组的各种方法。比如排序和搜索等,其所有方法均为静态方法,调用非常方便。
二、操作数组的方法
(1)使用二分搜索法来搜索指定的 int 型数组,以获取指定的值;要求数组是有序的,否则结果不确定;如果key在 数组a中存在,就返回找到的第一个的下标,如果不存在就返回负数。
public static int binarySearch(int[] a,int key)
(2)从original原数组中复制得到一个新数组,新数组的长度为newLength
public static int[] copyOf(int[] original,int newLength)
(3)从original原数组中把[from,to)复制出来,构成新数组要求from必须在original的合理下标范围内,to可以超过长度
public static int[] copyOfRange(int[] original,int from,int to)
(4)比较两个数组的长度和内容是否一致
public static boolean equals(int[] a,int[] a2)
(5)把a数组的元素中val填充
public static void fill(int[] a,int val)
(6)把数组a按照升序排列
public static void sort(int[] a)
(7)把a数组的元素,遍历,拼接为一个字符串返回,效果
public static String toString(int[] a)
(8)返回一个受指定数组支持的固定大小的列表。
static <T> List<T> asList(T... a)
注意:转化后的 list 的一个只读的集合,而且它的类型是 java.util.Arrays$ArrayList不是java.util.ArrayList
三、arraycopy 方法
Object:是所有引用数据类型的根父类
Object类型的变量,形参,就可以接受任意的引用数据类型的对象,包括数组。
public static native void arraycopy(Object src, int srcPos, Object dest, int destPos,int length);
第一个参数:src 原数组对象
第二个参数:srcPos 从原数组的[srcPos]下标开始复制
第三个参数:dest 目标数组对象
第四个参数:destPos 目标数组从[destPos]开始存储
第五个参数:length 表示从原数组复制几个元素
说明:如果 src 和 dest 是同一个数组的话,那么就会实现数组的元素的移动
Demo1:
1 public static void main(String[] args) {
2 // 定义int 数组
3 int[] arr = {2,34,35,4,657,8,69,9};
4 // 打印数组,输出地址值
5 System.out.println(arr); // [I@2ac1fdc4
6 // 数组内容转为字符串
7 String s = Arrays.toString(arr);
8 // 打印字符串,输出内容
9 System.out.println(s); // [2, 34, 35, 4, 657, 8, 69, 9]
10 }
Demo2:
1 public static void main(String[] args) {
2 // 定义int 数组
3 int[] arr = {24, 7, 5, 48, 4, 46, 35, 11, 6, 2};
4 System.out.println("排序前:"+ Arrays.toString(arr)); // 排序前:[24, 7, 5, 48, 4, 46, 35, 11, 6,2]
5 // 升序排序
6 Arrays.sort(arr);
7 System.out.println("排序后:"+ Arrays.toString(arr));// 排序后:[2, 4, 5, 6, 7, 11, 24, 35, 46,48]
8 }