Arrays类中包含各种用于操作数组的方法,下面是比较常用的几种方法
目录
导包
常见方法的使用
1.Arrays.toString()
2.Arrays.fill()
3.Arrays.sort()
4. Arrays.equals()
5.Arrays.binarySearch()
6.Arrays.copyOf() 和Arrays.copyOfRange()
Arrays类位于java.util包中,所以要想使用Arrays类中的方法首先要进行导包
import java.util.Arrays;
用于返回指定数组内容的字符串表示形式
public class Demo {
public static void main(String[] args) {
int[] arr = {1,2,3,4,5,6,7,8,9,10};
//将数组arr中内容转换为字符串
String str = Arrays.toString(arr);
System.out.println(str);
}
}
输出结果
用于替换数组原元素
public class Demo {
public static void main(String[] args) {
int[] arr = new int[5];
//将1赋值给数组中的每一个元素
Arrays.fill(arr,1);
System.out.println(Arrays.toString(arr));
}
}
输出结果
public class Demo {
public static void main(String[] args) {
int[] arr = new int[5];
//将1赋值给数组中指定元素
//从1索引开始到3索引(不包括)处
Arrays.fill(arr,1,3,1);
//第一个参数是数组,第二个参数是起始索引,第三个参数是结束索引,
//第四个参数是指定的值
System.out.println(Arrays.toString(arr));
}
}
输出结果
用于按照数字顺序排列指定的数组(默认升序)
public class Demo {
public static void main(String[] args) {
int[] arr = {13,5,6,8,2};
System.out.println("调用sort方法前:" + Arrays.toString(arr));
//按照升序排序
Arrays.sort(arr);
System.out.println("调用sort方法后:" + Arrays.toString(arr));
}
}
输出结果
注:在进行字符串的排序时,比较的是每个字符的ASCII码值,而不是字符串长度
public class Demo {
public static void main(String[] args) {
String[] strings = {"abc","ad","ac"};
Arrays.sort(strings);
System.out.println(Arrays.toString(strings));
}
}
输出结果
用于比较两个数组内容是否相等,返回类型为Boolean,两数组内容相同返回true,不同返回false
public class Demo {
public static void main(String[] args) {
char[] chars1 = {'a','b','c'};
char[] chars2 = {'a','b','d'};
boolean isSame = Arrays.equals(chars1,chars2);
System.out.println(isSame);
}
}
用于查找数组中的元素,返回值为int
注:数组一定是排好序的,否则会出错
public class Demo {
public static void main(String[] args) {
//数组一定是排好序的
int[] arr = {2,4,10,20,33};
//传入两个参数,前一个为要查找的数组,后一个为要查找的元素
int a = Arrays.binarySearch(arr,2);//0
//找到该元素,则返回该元素的索引
//返回值>=0,则说明能找到该元素
int b = Arrays.binarySearch(arr,3);//-2
//未找到该元素,返回-x
//3介于2和4之间,若要将3放入数组中,是该数组的第二个元素,则返回-2
int c = Arrays.binarySearch(arr,0,3,20);//-4
//在0索引到3(不包括)索引位置查找该元素
}
}
用于拷贝数组
Arrays.copyOf()
public class Demo {
public static void main(String[] args) {
int[] arr1 = {1,2,3,4,5};
//第一个参数为原数组,第二个参数是拷贝长度,返回值是一个新数组
//默认从0索引位置开始拷贝
int[] arr2 = Arrays.copyOf(arr1,3);
System.out.println(Arrays.toString(arr2));
}
}
输出结果
Arrays.copyOfRange(int[] original, int from, int to)
public class Demo {
public static void main(String[] args) {
int[] arr1 = {1,2,3,4,5};
//第一个参数:原数组,第二个参数:开始拷贝索引,第三个参数:结束拷贝索引(不包括)
int[] arr2 = Arrays.copyOfRange(arr1,1,3);
System.out.println(Arrays.toString(arr2));
}
}
输出结果