JAVA语言中Arrays类的方法使用

JAVA语言中Arrays类的方法使用
Arrays 类是 Java 中提供的一个工具类,在 java.util 包中。该类中包含了一 些方法可用来直接操作数组,比如可直接实现数组的排序、搜索等。该类的常用方法如下:
1、数组中的元素排序:sort()
默认由小到大排序(升序),不只对于数值型的可以排序,对于字符串等也都可以进行排序
例如:int []arr = {4,3,2,6,5};
Arrays.sort(arr);
output(arr); //结果是:2 3 4 5 6
例如:int []arr = {3,2,1,5};
Arrays.sort(arr,1,3); //1号下标到3号(不包括)下标排序
2、比较数组元素是否相等:equals ()
比较两个数组元素中的元素值是否全部相等,如果是返回true,否则返回false,适用于一维数组,多维数组用deepEquals(),用法与equals相同
例如:int []arr1 = {1,5,7};
int []arr2 = {1,5,7};
System.out.println(Arrays.equals(arr1,arr2)); //结果是:true
分析:如果是arr1.equals(arr2),则返回false,因为equals比较的是两个对象的地 址,不是里面的数,而Arrays.equals重写了equals,所以,这里能比较元素是 否相等。
3、填充数组:fill()
将数组的元素全部设定为指定的值
例如:int []arr = new int[4]; //默认结果为0
Arrays.fill(arr, 1); //给所有赋值“1”
output(arr); //结果是:1 1 1 1
例如:int []arr = new int[];
Arrays.fill(arr, 1,3,8); //1号下标到3号(不包括)下标赋值“8”,结果是:0 8 8 0

4、二分查找法找指定元素的索引值(下标):binarySearch()
对已排序(从小到大排序的)的数组进行二元搜索,如果找到指定的值就返回其所在的索引位置,否则返回负值
例如:int []arr = {10,20,30,40,50};
System.out.println(Arrays.binarySearch(arr, 20)); //能找到该元素,返回 下标为1(0开始),结果是:1
例如:int []arr = {10,20,30,40,50};
System.out.println(Arrays.binarySearch(arr, 35)); //找不到元素,返回-x,从-1开始数,如题,返回-4,结果是:-4
例如:int []arr = {10,20,30,40,50};
System.out.println(Arrays.binarySearch(arr, 0,3,30)); //从0到3位(不包括)找30,找到了,在第2位,返回2,结果是:2
例如:int []arr = {10,20,30,40,50};
System.out.println(Arrays.binarySearch(arr, 0,3,40)); //从0到3位(不包括)找40,找不到,从-1开始数,返回-4,结果是:-4
5、截取数组:copeOf和copeOfRange
copyOf(int[] original, intnewLength):复制指定的数组,截取或用 0 填充(如有必要),以使副本具有指定的长度;
copyOfRange(int[] original, intfrom, int to):将指定数组的指定范围复制到 一个新数组。
例如:copyOf
int []arr = {20,40,50,60,80};
int []arr1 = Arrays.copyOf(arr, 3);//截取arr数组的3个元素赋值给新数组 arr1,结果:20 40 50
例如: copyOfRange
int []arr = {10,20,30,40,50};
int []arr1 = Arrays.copyOfRange(arr,1,3); //从1号下标截取到3号(不包括)下标,结果:20 30
6、toString(int[] a):
在实际项目中,如果想要把数组中的内容打印出来,直接使用toString方法只会打印出数组的地址,因此需要使用Arrays的toString方法,可以从其内部实现中看出来,该方法支持入参可以是long,float,double,int,boolean,byte,object型的数组。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值