Arrays类讲解
-
数组的工具类java.util.Arrays
-
由于数组对象本身并没有什么方法可以供我们调用,但API中提供了一个工具类Arrays供我们使用,从而可以对数据对象进行一些基本的操作。
-
查看JDK帮助文档//可以看Jdk网页版api
也可以网上下载后本地查看(jdk api 1.8_google.CHM)
-
Arrays类中的方法都是static修饰的静态方法,在使用的时候可以直接使用类名进行调用,而”不用"使用对象来调用(注意:是"不用”而不是"不能")
-
具有以下常用功能:
- 给数组赋值:通过fill方法。
- 对数组排序:通过 sort 方法,按升序。
- 比较数组:通过equals方法比较数组中元素值是否相等。
- 查找数组元素:通过binarySearch 方法能对排序好的数组进行二分查找法操作。
1.打印数组元素:Arrays.toString
package com.baixiaofan.array;
import java.util.Arrays;//下面调用工具包后自动填充
public class ArrayDemo06 {
public static void main(String[] args) {
int[] a = {1,2,3,4,9090,31231,543,21,3,23};
System.out.println(a);//[I@1b6d3586
//打印数组元素Arrays.toString
System.out.println(Arrays.toString(a));//[1, 2, 3, 4, 9090, 31231, 543, 21, 3, 23]
System.out.println("================================");
printArray(a);
}
//除了直接调用Array的工具类 也可以自己手打 调用方法 效果是一样的
public static void printArray(int[] a){
for (int i = 0; i < a.length; i++) {
if (i==0){
System.out.print("[");
}
if (i== a.length-1){
System.out.print(a[i]+"]");
}else {
System.out.print(a[i]+", ");
}
}
}
}
结果是:
[I@1b6d3586
[1, 2, 3, 4, 9090, 31231, 543, 21, 3, 23]
================================
[1, 2, 3, 4, 9090, 31231, 543, 21, 3, 23]
Process finished with exit code 0
2.对数组进行排序:Arrays.sort
对数组进行填充:Arrays.fill
package com.baixiaofan.array;
import java.util.Arrays;
public class ArrayDemo07 {public static void main(String[] args) {
int[] a = {1,2,3,4,9090,31231,543,21,3,23};
System.out.println(a);//[I@1b6d3586
//打印数组元素Arrays.toString
System.out.println(Arrays.toString(a));//[1, 2, 3, 4, 9090, 31231, 543, 21, 3, 23]
System.out.println("================================");
Arrays.sort(a);//对数组进行排序(升序)
System.out.println(Arrays.toString(a));
System.out.println("================================");
//填充数组
//Arrays.fill(a,0);//输入Arrays.fill(a,后直接按0 会自动填充val:
//System.out.println(Arrays.toString(a));//结果是[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
System.out.println("================================");
Arrays.fill(a,2,4,0);//从第2个到第4个元素填充为0(2跟4之间 即包括2跟3)
System.out.println(Arrays.toString(a));//[1, 2, 0, 0, 4, 21, 23, 543, 9090, 31231]
}
}
结果是:
[I@1b6d3586
[1, 2, 3, 4, 9090, 31231, 543, 21, 3, 23]
================================
[1, 2, 3, 3, 4, 21, 23, 543, 9090, 31231]
================================
================================
[1, 2, 0, 0, 4, 21, 23, 543, 9090, 31231]
3.比较数组:Arrays.equals
package com.baixiaofan.array;
import java.util.Arrays;
public class ArrayDemo08 {
public static void main(String[] args) {
int[] a = {1,2,3,4,5};
int[] b = new int[5];//[5]代表数组长度 下标即为4
b[0] = 1;
b[1] = 2;
b[2] = 3;
b[3] = 4;
b[4] = 5;
int[] c = {1,5,4,2,3};
if (Arrays.equals(a,b)){
System.out.println("a数组和b数组相等");
}else {
System.out.println("a数组和b数组不相等");
}
if (Arrays.equals(a,c)){
System.out.println("a数组和c数组相等");
}else {
System.out.println("a数组和c数组不相等");
}
}
}
结果是:
a数组和b数组相等
a数组和c数组不相等