Arrays类操作数组常用方法介绍
import java.util.Arrays;
//Arrays类操作数组常用方法举例
public class AraysTest {
public static void main(String[] args) {
/*
binarySearch(type[] a,type key)
使用二分法查询key元素在数组中的索引
如不包含key就返回负数。使用时数组元素必须有序。
*/
int[] a = {3, 7, 8, 9, 15, 48};
//元素9在数组a中的索引为3,则输出结果为3
int index = Arrays.binarySearch(a, 9);
System.out.println(index);
//元素99不在数组a中,则输出结果为负数
index = Arrays.binarySearch(a, 99);
System.out.println(index);
/*
binarySearch(type[] a,int fromIndex,int toIndex,type key)
使用二分法查询key元素在数组中的索引,但只查询数组a中fromIndex到toIndex索引的元素
如不包含key就返回负数。使用时数组元素必须有序。
*/
//48在数组a中,但48的索引为5,在0-4的索引范围内查询不到48,返回值为复数
index = Arrays.binarySearch(a, 0, 4, 48);
System.out.println(index);
//8在a数组中并且在0-4范围内可以找到8的索引为2
index = Arrays.binarySearch(a, 0, 4, 8);
System.out.println(index);
/*
copyOf(type[] b, int length)
把数组b复制成一个新数组,length是新数组的长度
如果length小于数组b的长度,新数组救是原数组前面length个元素
如果length大于数组b的长度,新数组前面所有元素就是原数组所有元素,后面在补充
0(数值;类型),false(布尔类型),null(引用类型)
*/
int[] b = {35, 47, 38, 69, 15, 48, 55, 60};
//复制b数组,大小相同;输出接结果:35, 47, 38, 69, 15, 48, 55, 60
int[] copy = Arrays.copyOf(b, 8);
for (int i = 0; i < copy.length; i++) {
System.out.print(copy[i] + " ");
}
System.out.println("");
//只复制前5个元素,输出结果为:35 47 38 69 15
int[] copy2 = Arrays.copyOf(b, 5);
for (int i = 0; i < copy2.length; i++) {
System.out.print(copy2[i] + " ");
}
System.out.println("");
//新数组比原数组大,前8个元素为原数组元素,后2个元素为0,输出结果:35 47 38 69 15 48 55 60 0 0
int[] copy3 = Arrays.copyOf(b, 10);
for (int i = 0; i < copy3.length; i++) {
System.out.print(copy3[i] + " ");
}
System.out.println("");
/*
fill(type[] a,type val)将数组a所有元素赋值为val
*/
int[] c = new int[5];
//将数组c的五个元素全部赋值为666
Arrays.fill(c, 666);
for (int i = 0; i < c.length; i++) {
System.out.print(c[i] + " ");
}
System.out.println(" ");
/*
fill(type[] a,int fromIndex,int toIndex,type val)将数组c从fronIndex到toIndex索引元素赋值为val
*/
//将数组c中索引1-3赋值为999
Arrays.fill(c, 1, 3, 999);
for (int i = 0; i < c.length; i++) {
System.out.print(c[i] + " ");
}
System.out.println("");
/*
toString(type[] c)将数组转换成字符串
*/
System.out.println(Arrays.toString(c));
}
}