Java中Array数组工具类常用方法
在Java中Arrays工具类,可以帮助我们数组拷贝,打印,排序等等,今天我们来探究一下
·
Arrays工具类与数组
前言
我们在使用数组的时候,有一些功能,例如:数组拷贝,比较,排序等等,我们想完成这些功能的时候,都需要写一个方法,因此Java中就提供了一个Arrays这个工具类,帮助我们完成这些功能
我们在使用的时候都要加上使用这个包的说明
import java.util.Arrays;
一 数组打印
一维数组
我们在打印数组的时候需要双重for循环进行打印,Arrays中有toString这个方法可以用来打印一维数组
public static String toString(T[] a)//介绍
String src = Arrays.toString(T);//使用
返回类型:String(字符串类型)
T是数组元素类型
Arrays.toString(T)是取出数组名为T的所有元素
例如下面这个代码
import java.util.Arrays;
public class test {
public static void main(String[] args) {
//数组转字符串
int[] array = {1,2,3,4,5};
//使用工具类取出数组内容
String str = Arrays.toString(array);
System.out.println(str);
}
}
运行结果如下
上面我们打印一维数组,如何打印二维数组呢,和这个一样吗
二维数组

Arrays.toString(array)
这里我们发现只打印两个地址,是因为这里的二维数组是由一维数组组成的
这里打印是是每行的首地址,并不是所有元素
那我们如何打印呢,这时候Arrays工具类提供了一个deepToString可以用来打印二维数组
这个用法和toString是类似的
import java.util.Arrays;
public class test {
public static void main(String[] args) {
int[][] array = {{1,2,3},{4,5,6}};
System.out.println(Arrays.deepToString(array));
}
}
运行结果如下
二 数组拷贝
全部拷贝(Arrays.copyof)
public static T1[] = Arrays.copyOf(T[] original,int newLength);
这里是将T数组元素全部拷贝给T1数组,这里传参传递的是T数组的起始地址和该数组的长度
import java.util.Arrays;
public class test {
public static void main(String[] args) {
//数组转字符串
int[] array = {1,2,3,4,5};
int[] array1 = Arrays.copyOf(array,array.length);
System.out.println(Arrays.toString(array1));
}
}
这里的array1数组结果如下
部分拷贝(Arrays.copyOfRange)
如果我们只是想将数组的部分内容拷贝到另一个数组该怎样操作呢
public static T1[] = Arrays.copyOfRange(T[] original,int from,int to));
这里和上面全部拷贝不同的是,我们传参后面两个,from是要拷贝数组的起始下标,to是到那个下标结束
拷贝的下标范围是[from , to), 左闭右开
例如
import java.util.Arrays;
public class test {
public static void main(String[] args) {
//数组转字符串
int[] array = {1,2,3,4,5};
int[] array1 = Arrays.copyOfRange(array,2,4);
System.out.println(Arrays.toString(array1));
}
}
这里是将array 数组[ 2, 4)区间的下标拷贝给array1,所以这里的array1数组内容维 3,4
三 查找数组元素(binarysearch)
给定⼀个数组,再给定⼀个元素,找出该元素在数组中的位置,如果有的话返回(binarySearch)
public static int binarySearch(T[] a,T key)
T是数据类型,这里是在a数组中查找key元素
如果找到返回 key所在的下标,注意返回的下标要>=0并且<=a.length小于数组长度
找不到会返回负数
import java.util.Arrays;
public class test {
public static void main(String[] args) {
int[] array = {1,2,3,4,5,6};
int ret = Arrays.binarySearch(array,7);
if((ret) >= 0){
System.out.println("找到了,下标是:"+ret);
}else{
System.out.println("找不到");
}
}
}
运行结果如下

四 数组排序(sort)
给定⼀个数组,让数组升序(降序)排序(sort)Java中内置了一个高效率的排序
import java.util.Arrays;
public class test {
public static void main(String[] args) {
int[] array = {2,3,41,2,3,67,3};
//拍的是升序
Arrays.sort(array);
System.out.println(Arrays.toString(array));
}
}
运行结果如下
五 判断数组是否相同(equals)
我们如何判断两个数组是否相同呢,以前是一个元素的比较,Java中提供了一个equals用于数组比较
public static boolean equals(T[] a,T[] a2)
两个T类型的数组进行比较
返回的是Boolean类型,两个数组相同是true,反之返回false
import java.util.Arrays;
public class test {
public static void main(String[] args) {
int[] array1 = {1,2,3,4};
int[] array2 = {1,2,3,4};
//判断两个数组是否相同,返回boolean类型
boolean flag = Arrays.equals(array1,array2);
System.out.println(flag);
}
}
运行结果如下

六 数组填充(fill)
我们有时候没有初始化,我们如果想将数组元素调整为相同内容,可以使用fill
public static void fill(T[] a,T val)
这里没有返回类型
要让我们填充数据类型与数组元素类型相同,val是填充的数值,a是被填充的数组
import java.util.Arrays;
public class test {
public static void main(String[] args) {
int[] array = new int[6];
System.out.println(Arrays.toString(array));
//这里我们没有初始化
Arrays.fill(array,1);
System.out.println(Arrays.toString(array));
}
}
int类型的数组没有初始化会默认为0
运行结果如下
到这里就结束了,希望对大家有所帮助,欲知后事如何,请听下回分解
更多推荐


所有评论(0)