Arrays使用

发布时间 2023-09-09 11:49:22作者: SimpleWord
title: Arrays数组工具类
index_img: https://picss.sunbangyan.cn/2023/07/30/stdtw2.jpg
tags:
  - Java SE
categories:
  - Java SE
hide: false
excerpt: Arrays数组工具类
  1. public static String toString(数组):将数组转换为字符串。数组的元素通过逗号和空格分隔,并用方括号括起来。
int[] arr = {1, 2, 3};
System.out.println(Arrays.toString(arr));  // 输出 "[1, 2, 3]"
  1. public static int binarySearch(数组,查找的元素):在已排序的数组中使用二分查找法查找指定的元素。如果找到,返回元素的索引;否则返回一个负数。
int[] arr = {1, 2, 3, 4, 5};
System.out.println(Arrays.binarySearch(arr, 3));  // 输出 "2"
  1. public static int[] copyOf(原数组,新数组长度):复制原数组到一个新的数组中,新数组的长度可以和原数组不同。
int[] arr1 = {1, 2, 3};
int[] arr2 = Arrays.copyOf(arr1, 5);
System.out.println(Arrays.toString(arr2));  // 输出 "[1, 2, 3, 0, 0]"
  1. public static int[] copyOfRange(原数组,起始索引,结束索引):复制原数组的一部分到一个新的数组中。
int[] arr1 = {1, 2, 3, 4, 5};
int[] arr2 = Arrays.copyOfRange(arr1, 1, 4);
System.out.println(Arrays.toString(arr2));  // 输出 "[2, 3, 4]"
  1. public static void fill(数组,元素):使用指定的元素填充整个数组。
int[] arr = new int[5];
Arrays.fill(arr, 1);
System.out.println(Arrays.toString(arr));  // 输出 "[1, 1, 1, 1, 1]"
  1. public static void sort(数组):对数组进行排序。
int[] arr = {5, 3, 2, 1, 4};
Arrays.sort(arr);
System.out.println(Arrays.toString(arr));  // 输出 "[1, 2, 3, 4, 5]"
  1. public static void sort(数组,排序规则):根据指定的比较器对数组进行排序。这个方法主要用于对象数组,而不是基本类型的数组。
Integer[] arr = {5, 3, 2, 1, 4};
Arrays.sort(arr, Comparator.reverseOrder());
System.out.println(Arrays.toString(arr));  // 输出 "[5, 4, 3, 2, 1]"

这个方法使用了 java.util.Comparator 接口,你可以提供自己的实现来定义排序规则。在这个例子中,我们使用了 Comparator.reverseOrder(),它返回一个比较器,该比较器按照逆自然顺序对对象进行排序。

  1. asList():将数组转换为 List。
Integer[] arr = {1, 2, 3, 4, 5};
List<Integer> list = Arrays.asList(arr);
// list 现在是 [1, 2, 3, 4, 5]

asList() 返回的列表的大小是固定的(不能添加或删除元素),并且其底层仍然是原始数组(所以改变原始数组会影响列表,反之亦然)。

  1. binarySearch():在已排序的数组中查找特定的元素。如果找到,返回元素的索引;否则返回一个负数。
int[] arr = {1, 2, 3, 4, 5};
int index = Arrays.binarySearch(arr, 3);
// index 现在是 2