100个Java工具类之77:数组操作的可靠助手ArrayUtils和Arrays

createh55个月前 (02-01)技术教程60

众所周知,数组操作是比较复杂的,而ArrayUtils就是为了为简化数组操作而生的,它在数组查找、排序、合并等方面提供了多种方法,合理使用,可以让代码看起来更简洁易用,下面通过几个实例来对其进行介绍。



一、获取元素索引

int[] arr = {1, 2, 3};
int i = ArrayUtils.indexOf(arr, 2);
System.out.println("2的索引是:" + i);
输出:2的索引是:1

二、数组合并

int[] arr1 = {1, 2};
int[] arr2 = {3, 4};
int[] arr3 = ArrayUtils.addAll(arr1, arr2);
System.out.println(ArrayUtils.toString(arr3));
输出:{1,2,3,4}

三、数组反转

int[] arr = {1, 2, 3};
ArrayUtils.reverse(arr);
System.out.println(ArrayUtils.toString(arr));
输出:{3,2,1}

四、数组截取

int[] arr1 = {1, 2, 3};
//包头不包尾
int[] arr2 = ArrayUtils.subarray(arr1, 0, 2);
System.out.println(ArrayUtils.toString(arr2));
输出:{1,2}



五、数组排序

int[] arr = {3, 1, 2};
Arrays.sort(arr);
System.out.println(Arrays.toString(arr));
输出:{1,2,3}

六、数组填充

int[] arr = new int[3];
Arrays.fill(arr, 1);
System.out.println(Arrays.toString(arr));
输出:[1, 1, 1]

七、数组复制

//类似于ArrayUtils.subarray数组截取
int[] arr1 = {1, 2, 3};
int[] arr2 = Arrays.copyOfRange(arr1, 0, 2);
System.out.println(Arrays.toString(arr2));
输出:[1, 2]

八、数组比较

int[] arr1 = {1, 2, 3};
int[] arr2 = {1, 2, 4};
System.out.println(Arrays.equals(arr1, arr2));
输出:false

以上就是关于数组操作的工具类的部分介绍,在实际操作过程中,需要灵活组合使用。


相关文章

Java合并两个数组,以及数组排序并去重

还有其他的方法,这里我列出最简单的方法来实现。1、Java合并两个数组第一种:public static void main(String[] args) { int[] a = ne...

Java数组详解(java数组操作方法)

数组,也叫Array,是由同一种数据类型按照一定的顺序排列的集合,给这个数组起一个名字。是一种数据类型。定义数组,在类型的后面加一个[]定义数组有两种方式①静态初始化 int[] num=new in...

刷题力扣349-两个数组的交集(两个数组的交集 ii)

这道题代码随想录用的是哈希数据结构,什么时候用哈希表,哈希表都是用来快速判断一个元素是否出现在集合里,相对于枚举的话,哈希表的时间复杂度只有O(1)。常见的三种哈希结构数组set(集合)map(映射)...

Java使用输出流OutputStream导出Excel遇到的问题及解决方法

这半年一直在参与一个新系统的软件开发,再此期间遇到了一个小小的问题,就是使用原生POI导出Excel时,会生成非Excel格式的文件,而且文件名称也不是设置好的,而是导出的方法名,如下图;不过这种文件...

请讲解C#中数组的长度和范围与其他编程语言的区别与共性?

C# 中数组的长度和范围与其他编程语言的区别与共性数组是编程语言中常用的数据结构之一,各种语言对数组的长度和范围处理方式有所不同。以下是 C# 中数组的长度和范围的特性,以及与其他编程语言的对比。C#...

讲解C#中多维数组的长度和范围的特性和使用方法

在 C# 中,多维数组是一种可以包含多个维度(通常是二维或三维)的数组类型。理解其长度和范围的特性有助于正确使用和避免错误。以下是多维数组的长度、范围特性及其使用方法的详细讲解。1. 多维数组的定义和...