java萌新的进化旅程06

Java类库中操作数组的类和方法

这篇文章主要介绍java.util.Arrays类。System.arraycopy、copyOf、copyOfRange以及clone会在以后单独拿出来写一篇拷贝方式进行介绍。

java.util.Arrays类提供的常用方法和属性

1.sort

sort(数组名)或sort(数组名,起始索引,结束索引,键值)//填充指定索引范围
说明/示例
按升序进行数组排序。如果指定范围,则排序范围从起始索引(包括)到结束索引(不包括)。注:如果起始索引==结束索引,则排序范围为空。如果指定下标索引越界,则会抛出异常ArrayIndexOutOfBoundsException。例如:

double[] ad1 = {2.1,1.3,7.5,4.2,3.3};
Arrays.sort(ad1,0,3);
System.out.println(Arrays.toString(ad1));         //结果:[1.3,2.1,7.5,4.2,3.3]
Arrays.sort(ad1);
System.out.println(Arrays.toString(ad1));         //结果:[1.3,2.1,3.3,4.2,7.5]

2.binSearch

binarySearch(数组名,键值)或binarySearch(数组名,起始索引,结束索引,键值)//在指定索引范围内搜索
说明/示例
使用二分法搜索来搜索指定类型的数组,以查找指定的键值。如果搜索键包含在数组中,则返回其索引;否则返回(-(插入点)-1)。注:插入点为第一个大于键值的元素索引。如果指定下标索引越界,则会抛出异常ArrayIndexOutOfBoundsException。例如:

int[] a1={0,2,4,6,8,0,2,4,6,8};
int i1=Arrays.binarySearch(a1,4);           //结果:2
int i2=Arrays.binarySearch(a1,4,10,4);      //结果:7
int i3=Arrays.binarySearch(a1,3);           //结果:-3
int i4=Arrays.binarySearch(a1,55);			//结果:-11

3.equals

equals(数组名1,数组名2)
说明/示例
判断两个数组是否相等,结果为true或false。如果两个数组以相同顺序包含相同的元素,则两个数组是相等的。注:如果两个数组引用均为null,则认为它们是相等的。例如:

short[]a1={0,2,4,6,8};
 short[]a2={0,2,4,6,8};
short[]a3={1,3,5,7,9};
 short[]a4=null;
 short[]a5=null;
 boolean b1=Arrays.equals(a1,a2);    //结果:true
 boolean b2=Arrays.equals(a1,a3);    //结果:false
 boolean b3=Arrays.equals(a1,a4);    //结果:false
 boolean b4=Arrays.equals(a4,a5);	 //结果:true

4.fill

fill (数组名,值)或fill(数组名,键值)或binarySearch(数组名,起始索引,结束索引,值)//填充指定索引范围
说明/示例
使用指定值填充数组。如果指定范围,则填充从起始索引(包括)到结束索引(不包括)。注:如果起始索引==结束索引,则填充范围为空。如果指定下标索引越界,则会抛出异常ArrayIndexOutOfBoundsException。例如:

long[]a1={0,2,4,6,8,0,2,4,6,8};			
        Arrays.fill(a1,1);                  //结果:[1,1,1,1,1,1,1,1,1,1]
        Arrays.fill(a1,0,5,0);              //结果:[0,0,0,0,0,1,1,1,1,1]
        Arrays.fill(a1,5,5,0);              //结果:[0,0,0,0,0,1,1,1,1,1]
        Arrays.fill(a1,5,15,0);             //下标索引越界,运行时异常

5.toString

toString(数组名)deepToString(数组名)//打印多维数组
说明/示例
返回指定数组内容的字符串表示形式。多维数组则用deepToString(数组名)。例如:

double[] ad1={1.1,3.3,5.5,7.7,9.9};                    
        boolean[] ab1={true,false};
        String[] as1={"ab","cde","fghi"};
        int[][] a2D={{1,2,3},{4,5,6}};                 //声明并创建一个二维整型数组(2*3)
        System.out.println(Arrays.toString(ad1));      //结果:[1.1,3.3,5.5,7.7,9.9]
        System.out.println(Arrays.toString(ab1));      //结果:[true,false]
        System.out.println(Arrays.toString(as1));      //结果:[ab,cde,fghi]
        System.out.println(Arrays.toString(a2D));      //结果:[[I@de6ced,[I@c17164]
        System.out.println(Arrays.deepToString(a2D));  //结果:[[123],[456]]

看到这里的朋友们,如果你觉得博主的文章不错,可以关注博主或查看博主的其他文章,让我们一起从0开始学习java。
另外,如果博主的文章哪里有错误,漏洞,或者交代不清的内容可以留言,博主会及时改正。遇到什么问题博主也会尽力去解答。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值