Java数组详解
Arrays 类(工具类)
1、工具类的说明
-
数组的工具类java.unit.Arrays
-
由于数组对象本身并没有什么方法可以供我们调用,但API中提供了一个工具类Arrays供我们使用,从可以对数据对象进行一些基本的操作。
-
查看JDK帮助文档
-
Arrays类中的方法都是static修饰的静态方法,在使用的时候可以直接使用类名进行调用,而"不用"使用对象来调用(注意:是"不用"而不是"不能")
2、几个常用的Arrays工具类:
① 打印数组元素:通过toString。
- 下面进行简单的操作:
package com.song.array;
import java.util.Arrays;
public class ArrayDemo10 {
public static void main(String[] args) {
int[] a = {10,20,30,40,50};
//System.out.println(a);
//这样输出结果为 [I@1b6d3586
//不能直接这样输出,直接打印数组元素可以用Arrays.toString
//打印数组元素Array.toString
System.out.println(Arrays.toString(a));
}
}
运行后显示:
- 不用Arrays工具类:
package com.song.array;
import java.util.Arrays;
public class ArrayDemo10a {
public static void main(String[] args) {
int[] a = {10,20,30,40,50};
printArray(a);
}
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]+", ");
}
}
}
}
运行后显示:
② 给数组赋值:通过fill方法。
下面进行简单的操作:
package com.song.array;
import java.util.Arrays;
public class ArrayDemo11 {
public static void main(String[] args) {
int[] a = new int[10];
//填充数组元素 Arrays.fill
Arrays.fill(a,5);
//打印数组元素 Arrays.toString
System.out.print(Arrays.toString(a));
}
}
运行后显示:
③ 对数组排序:通过sort方法,按升序。
下面进行简单的操作:
package com.song.array;
import java.util.Arrays;
public class ArrayDemo12 {
public static void main(String[] args) {
int[] a = {10,153,12,45,156,16,41,19};
//给数组进行排序:升序
Arrays.sort(a);
//打印数组元素
System.out.print(Arrays.toString(a));
}
}
运行后显示:
④ 比较数组:通过equals方法。
- 通过equals方法比较数组中元素值是否相等。
下面进行简单的操作:
package com.song.array;
import java.util.Arrays;
public class ArrayDemo14 {
public static void main(String[] args) {
//定义几个数组
int[] a = {1,2,3};
int[] b = {1,2,3};
int[] c = {4,5,6};
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");
}
}
}
运行后显示:
⑤ 查找数组元素:通过binarySearch方法。
- 通过binarySearch方法能对排序好的数组进行二分查找法操作。
下面进行简单的操作:
package com.song.array;
import java.util.Arrays;
public class ArrayDemo13 {
public static void main(String[] args) {
int[] a = {10,153,12,45,156,10,41,19};
Arrays.sort(a);//将数组a进行排序:升序
//操作Arrays.binarySearch前必须先将数组进行升序
//升序后的数组 a: [10, 10 ,12 ,19 ,41 ,45 ,153 ,156]
int i = Arrays.binarySearch(a,12);//查找数组a中12的下标
System.out.print("12的下标为"+i);//输出12的下标
}
}
运行后显示: