java数组 类_Java常用类(四)之数组工具类Arrays

前言

数组的工具类java.util.Arrays

由于数组对象本身并没有什么方法可以供我们调用,但API中提供了一个工具类Arrays供我们使用,从而可以对数据对象进行一些基本的操作。

一、Arrays类概述

1.1、Arrays类的引入

该是java.util包中的类,在我们的代码中想使用这个类的话,就必须使用import进行导入。

在当前类A中,只有java.lang包下的类,以及和当前类A在同一个包下的类,不需要import引入之外,其他所有的包下的类在被使用之前都要import引入。

1.2、简介

f02f6407ab759d4500ed16ac8876bd83.png

二、Arrays类中方法调用

Arrays类中的方法都是static修饰的静态方法,在使用的时候可以直接使用类名进行调用,而"不用"使用对象来调用(注意:是"不用" 而不是 "不能")

2.1、toString()方法

把数组转换位字符串形式并返回

06169c3bbd403719b2bc0ac0eac60043.png

int[] a = {1,3,5,7,9};

System.out.println(Arrays.toString(a));

结果:[1, 3, 5, 7, 9]

2.2、binarySearch()方法

在数组中查找指定元素并返回其下标

注意:使用二分搜索法来搜索指定的数组,以获得指定的值。必须在进行此调用之前对数组进行排序(通过sort方法等)。如果没有对数组进行排序,则结果是不确定的。

如果数组包含多个带有指定值的元素,则无法保证找到的是哪一个。

109de0ed1112753b264398fdfe368360.png

int[] a = {1,3,5,7,9};int bs = Arrays.binarySearch(a, 7);

System.out.println(bs);

结果:3

2.3、sort()方法

把数据中的元素进行排序

e97bd68a4d17b108ad5f909fc40a0f98.png

1)    对指定的 int 型数组按数字升序进行排序

int[] a = {3,5,1,9,7};

System.out.println("before"+Arrays.toString(a));

Arrays.sort(a);

System.out.println("after"+Arrays.toString(a));

结果:before[3, 5, 1, 9, 7]

after[1, 3, 5, 7, 9]

2)   对指定 byte 型数组的指定范围按数字升序进行排序。

参数概述:

a - 要排序的数组

fromIndex - 要排序的第一个元素的索引(包括)

toIndex - 要排序的最后一个元素的索引(不包括)

3)Comparator super T> c)    根据指定比较器产生的顺序对指定对象数组进行排序

2.4、copyOf()方法

复制或者截取指定数组并返回

0d8bb788fde41a5e0fdd3e66bb9d8e8e.png

int[] a = {1,3,5,7,9};int[] copy = Arrays.copyOf(a, 8);

System.out.println(Arrays.toString(copy));

结果:[1, 3, 5, 7, 9, 0, 0, 0]

2.5、copyOfRange()方法

将数组中指定范围复制新数组并返回

将指定数组的指定范围复制到一个新数组。

参数:original - 将要从其复制一个范围的数组

from - 要复制的范围的初始索引(包括)

to - 要复制的范围的最后索引(不包括)。(此索引可以位于数组范围之外)。

1a9e6b7fd37068f495b60bcbc760aa9f.png

2.6、equals()方法

比较俩个数组是否相等

7e8a121e753827189c1aabf3bc2ab903.png

int[] a = {1,3,5,7,9};int[] b = {1,3,5,7,9};

boolean eq=Arrays.equals(a, b);

System.out.println(eq);

System.out.println(a==b);

结果:true

false

注意:==比较的是引用所指向对象的内存地址

Arrays.equals方法比较是俩个数组中的内容

2.7、fill()方法

用指定值去填充数组对象

24b77a41501cf9bd4d896a922908d3e6.png

1)

int[] a = {1,3,5,7,9};

Arrays.fill(a,666);

System.out.println(Arrays.toString(a));

结果:[666, 666, 666, 666, 666]

2)     将指定的 int 值分配给指定 int 型数组指定范围中的每个元素。

参数:    a - 要填充的数组

fromIndex - 要使用指定值填充的第一个元素的索引(包括)

toIndex - 要使用指定值填充的最后一个元素的索引(不包括)

val - 要存储在数组所有元素中的值

2.8、asList()方法

可以把数组转换为List集合

f9f6df6b6ae82e0f5f9c00377c92d06c.png

int[] a = {3,5,1,9,7};

List list = Arrays.asList(a);

2.9、hashCode()方法

基于指定数组的内容返回哈希码

ba6bda43fd8719a94d7b850313fe7d11.png

int[] a = {3,5,1,9,7};

System.out.println(Arrays.hashCode(a));

结果:31549916

喜欢就点个“推荐”哦!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值