Java中Arrays工具类的一些常见方法总结

 更新时间:2024年02月27日 09:26:11   作者:cph_507  
在Java中Arrays类是一个实用工具类,用于在数组上执行各种操作,包括排序、搜索、比较等,这篇文章主要给大家介绍了关于Java中Arrays工具类的一些常见方法,文中通过图文介绍的非常详细,需要的朋友可以参考下

前言

在Java中,Arrays类是一个实现对数组操作的工具类,包括了各种各样的静态方法,可以实现数组的排序和查找、数组的比较和对数组增加元素,数组的复制和将数组转换成字符串等功能。这些方法都有对所有基本类型的重载方法。

基本的常用方法包括;

1.Arrays.asList()         

观察源码可知:此方法内部的参数:为一个动态参数或者一个数组(必须为引用类型,因为返回的列表内部不能为基本数据类型),即一组相同类型的值

  • 作用:将一组相同类型的参数或者数组,以List(列表)的类型返回,

转化原因(使用场景):因为数组大小固定,不易更改,可通过转化列表,通过具体的列表形式操作

例子;

2.Arrays.binarySearch():使用前提,必须在有序数组中

通过快捷输入可了解到,此方法在Arrays类中是重载的,不同的参数(参数的类型,个数),适用于不同的场景。

此方法的作用:通过二分查找在 “有序数组”中查找目标值。返回目标值在数组中的下标,若未查找到,返回一个小于0的数。

以常用方法:举例

  • 参数:  (数组名称,目标值)
  • 参数:(数组名称,查找范围的初始索引,查找范围的末端索引,目标值)
int[] array = {1,2,3,4,5,6,7,8,9};
		int index = Arrays.binarySearch(array , 8);
		System.out.println(index);
int[] array = {1,2,3,4,5,6,7,8,9};
		int  index = Arrays.binarySearch(array, 5,array.length,8);
		System.out.println(index);

观察其内部源代码可知:

其内部设有一个二分查找的private私有的算法,不过不同的参数传入,最终都是利用该二分查找算法返回目标值的下标

3.Arrays.copyOf()

同理:通过快捷输入可了解到,此方法在Arrays类中是重载的,不同的参数(参数的类型,个数),适用于不同的场景。

主要作用;对目标数组复制,从头开始复制长度为n个元素

  • 参数:(目标数组名称,需复制的长度)

观察源码:通常创建一个长度为复制长度的新数组,再通过System类提供的arrayCopy方法复制到新数组,再返回出去。

例子:

int[] array = {1,2,3,4,5,6,7,8,9};
		int[] arr = Arrays.copyOf(array, 1);
		int[] arr1 = Arrays.copyOf(array, 5);
		int[] arr2 = Arrays.copyOf(array, 8);
		System.out.println(Arrays.toString(arr));
		System.out.println(Arrays.toString(arr1));
		System.out.println(Arrays.toString(arr2));	

4.Arrays.copyOfRange()

同理:通过快捷输入可了解到,此方法在Arrays类中是重载的,不同的参数(参数的类型,个数),适用于不同的场景。

主要作用:对目标数组复制,某个区间

  • 参数(目标数组名称,开始复制下标,结束下标(不包含结束下标位置元素))

观察源码:在调用该方法后,先判断结束下标是否大于初始下标,若小于,则抛出下标错误异常(初始下标>结束小标),

若下标正常,结束下标-初始下标即复制后的新数组长度,创建新数组,使用System.arrcopy()方法复制,再返回出去。

例子:

int[] array = {1,2,3,4,5,6,7,8,9};
int[] arr = Arrays.copyOfRange(array, 3, 7);
int[] arr1 = Arrays.copyOfRange(array, 1, 5);
int[] arr2 = Arrays.copyOfRange(array, 2, 9);
System.out.println(Arrays.toString(arr));
System.out.println(Arrays.toString(arr1));
System.out.println(Arrays.toString(arr2));	

5.Arrays.fill()

同理:通过快捷输入可了解到,此方法在Arrays类中是重载的,不同的参数(参数的类型,个数),适用于不同的场景。

主要作用:填充数组,

  • 参数:(数组名称,填充元素)
               (数组名称,填充区间的初始下标,填充区间的结束下标,填充元素)

观察源码:

两个参数的源码:由源码可知,此静态方法是通过传参后,利用for循环将其所有值改变

区间填充:四个参数的源码,此静态方法再传参后,先根据数组的长度检查,区间的初始下标以及结束下标是否合理,如果合理,通过for循环进行改变元素值,否则抛出下标异常

例子:

        int[] nums = {1,2,3,3,5,6,7};
		Arrays.fill(nums,-1);//数组全部填充覆盖
		System.out.println(Arrays.toString(nums));
		Arrays.fill(nums, 1,5,9);//数组区间填充覆盖
		System.out.println(Arrays.toString(nums));

6.Arrays.sort():此方法再Arrays类中也是重载。

主要作用:可对各种类型的数组排序

  • 参数(数组名称)
            (数组名称,比较器的内部类(自定义比较规则))

观察源码

例子:

基本类型数组

int[] nums = {99,8,3,3,34,6,7};
		Arrays.sort(nums);//对基本类型数组排序

自定义比较引用类型数组

7.Arrays.toString()

主要作用:快速打印一维数组所有元素

  • 参数(数组名称)

观察源码:通过检查是否为空,不为空,检查数组长度,若为0,则返回字符串"[]",若大于0,则创建可变字符串StringBuilder,通过尾部追加双引号,中括号,及数组元素,并输出这个可变字符串

例子

	int[] nums = {99,8,3,3,34,6,7};
		System.out.println(Arrays.toString(nums));

总结 

到此这篇关于Java中Arrays工具类的一些常见方法总结的文章就介绍到这了,更多相关Java Arrays工具类方法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • java文字转语音播报功能的实现方法

    java文字转语音播报功能的实现方法

    这篇文章主要给大家介绍了关于java文字转语音播报功能的实现方法,文中通过示例代码介绍的非常详细,对大家学习或者使用java具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-07-07
  • Spring Data Jpa框架最佳实践示例

    Spring Data Jpa框架最佳实践示例

    这篇文章主要为大家介绍了Spring Data Jpa框架最佳实践示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步早日升职加薪
    2022-02-02
  • java代码实现双向链表

    java代码实现双向链表

    这篇文章主要为大家详细介绍了java代码实现双向链表,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-05-05
  • 使用WebUploader实现上传文件功能(一)

    使用WebUploader实现上传文件功能(一)

    这篇文章主要为大家详细介绍了使用WebUploader实现上传文件功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-01-01
  • 使用springMVC所需要的pom配置

    使用springMVC所需要的pom配置

    这篇文章主要介绍了使用springMVC所需要的pom配置,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-09-09
  • spring中REST和RESTful的区别以及基本实现

    spring中REST和RESTful的区别以及基本实现

    本文主要介绍了spring中REST和RESTful的区别以及基本实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-04-04
  • Spring Boot Security配置教程

    Spring Boot Security配置教程

    在本文里我们给大家分享了关于Spring Boot Security配置的相关步骤以及注意要点,需要的朋友们跟着操作下。
    2019-05-05
  • Java中List add添加不同类型元素的讲解

    Java中List add添加不同类型元素的讲解

    今天小编就为大家分享一篇关于java的List add不同类型的对象,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-03-03
  • Struts2开发环境搭建 附简单登录功能实例

    Struts2开发环境搭建 附简单登录功能实例

    这篇文章主要介绍了Struts2开发环境搭建,为大家分享一个简单登录功能实例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-11-11
  • springboot的异步任务:无返回值和有返回值问题

    springboot的异步任务:无返回值和有返回值问题

    这篇文章主要介绍了springboot的异步任务:无返回值和有返回值问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-07-07

最新评论