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。
另外,如果博主的文章哪里有错误,漏洞,或者交代不清的内容可以留言,博主会及时改正。遇到什么问题博主也会尽力去解答。