欢迎访问宙启技术站
智能推送

Java函数——数组相关操作:常见的Java数组操作函数

发布时间:2023-06-12 12:49:53

1. System.arraycopy()

System.arraycopy() 是 Java 中一个非常常见的数组操作函数,它可以将一个源数组的部分或全部元素复制到目标数组的相应位置。具体格式是:

public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)

其中,src 表示源数组,srcPos 表示源数组开始复制的位置,dest 表示目标数组,destPos 表示目标数组开始复制的位置,length 表示要复制的元素个数。

示例代码:

int[] src = new int[]{1, 2, 3, 4, 5};

int[] dest = new int[5];

System.arraycopy(src, 0, dest, 0, 5);

2. Arrays.sort()

Arrays.sort() 是 Java 中对数组进行排序的函数,可以对 int、double 或其它基本数据类型的数组进行排序,也可以对 String 等对象数组进行排序。

示例代码:

int[] arr = new int[]{5, 1, 4, 2, 3};

Arrays.sort(arr); // 升序排序

System.out.println(Arrays.toString(arr)); // 输出 [1, 2, 3, 4, 5]

String[] str_arr = new String[]{"b", "a", "d", "c"};

Arrays.sort(str_arr); // 按字符串的字典序升序排序

System.out.println(Arrays.toString(str_arr)); // 输出 [a, b, c, d]

3. Arrays.fill()

Arrays.fill() 可以将数组中的所有元素设置为指定的值。具体格式是:

public static void fill(Object[] a, Object val)

public static void fill(Object[] a, int fromIndex, int toIndex, Object val)

其中,a 表示要设置值的数组,val 表示要设置的值,fromIndex 和 toIndex 分别表示要设置的元素的起始位置和结束位置(不包含结束位置上的元素)。

示例代码:

int[] arr = new int[5];

Arrays.fill(arr, 1); // 将所有元素设置为 1

System.out.println(Arrays.toString(arr)); // 输出 [1, 1, 1, 1, 1]

4. Arrays.asList()

Arrays.asList() 可以将一个数组转换成一个 List 容器,从而方便进行一些操作(比如删除、插入等)。

示例代码:

Integer[] arr = new Integer[]{1, 2, 3, 4, 5};

List<Integer> list = Arrays.asList(arr);

System.out.println(list); // 输出 [1, 2, 3, 4, 5]

list.set(0, 0); // 修改 个元素

System.out.println(list); // 输出 [0, 2, 3, 4, 5]

System.out.println(Arrays.toString(arr)); // 输出 [0, 2, 3, 4, 5]

注意,Arrays.asList() 转换的 List 是不可变的,不能进行添加或删除操作。

5. Arrays.copyOf()

Arrays.copyOf() 可以将一个已有数组复制到一个新的数组中。具体格式是:

public static <T> T[] copyOf(T[] original, int newLength)

其中,original 表示要复制的数组,newLength 表示新数组的长度。

示例代码:

String[] str_arr = new String[]{"a", "b", "c"};

String[] new_arr = Arrays.copyOf(str_arr, 5); // 复制数组并扩容到 5

System.out.println(Arrays.toString(new_arr)); // 输出 [a, b, c, null, null]

6. Arrays.binarySearch()

Arrays.binarySearch() 可以在一个已排序的数组中二分查找指定元素的位置。如果找到了元素,返回值为元素所在的下标;如果没有找到,返回负数。

示例代码:

int[] arr = new int[]{1, 2, 3, 4, 5};

int index = Arrays.binarySearch(arr, 3); // 查找元素 3 的下标

System.out.println(index); // 输出 2

7. Arrays.equals()

Arrays.equals() 可以比较两个数组是否相等。如果两个数组长度相同且对应元素相等,返回 true;否则返回 false。

示例代码:

int[] arr1 = new int[]{1, 2, 3};

int[] arr2 = new int[]{1, 2, 3};

boolean equal = Arrays.equals(arr1, arr2);

System.out.println(equal); // 输出 true

8. Arrays.deepToString()

Arrays.deepToString(arr) 可以将数组转换成一个字符串表示。如果数组中还包含数组,也会将其转换成字符串表示。这个功能对于调试程序非常方便。

示例代码:

int[][] arr = new int[][]{{1,2},{3,4,5},{6}};

System.out.println(Arrays.deepToString(arr));

// 输出 [[1, 2], [3, 4, 5], [6]]

总结:

Java数组是一个常见的数据结构,使用数组可以简化很多任务的处理。System.arraycopy()、Arrays.sort()、Arrays.fill()、Arrays.asList()、Arrays.copyOf()、Arrays.binarySearch()、Arrays.equals() 和 Arrays.deepToString() 等数组操作函数也是 Java 编程中非常常用的几个函数。我们需要熟练掌握这些函数的用法,以便更好地开发高质量的 Java 代码。