Arrays
程序员文章站
2024-03-05 23:13:01
...
Arrays
java.util.Arrays;
转换数组为字符串
Method : Arrays.toString()
将数组转换为字符串,以符号”[“开头,”]”结尾。
int a = {1,2,3};
print(Arrays.toString(a));
// [1,2,3]
插入数据
Method : Arrays.fill();
将一个数组每个位置都填入数据为目标值。
int[] a = new int[3];
Arrays.fill(a,12);
print(Arrays.toString(a));
// [12,12,12]
复制数组
Method : System.arraycopy();
使用该方法复制数组比使用for循环复制数组要快很多,arraycopy()中的参数有源数组、开始复制的数组的位置,目标数组,目标数组位置,复制数据的个数。
int[] a = new int[2]; //源数组
int[] b = new int[5]; //目标数组
System.arraycopy(a,0,b,1,a.length); //0 代表从数组a下标0开始复制,1 代表从数组b下标为1的位置开始复制,a.length代表复制数据长度为数组a的长度
注意 :
如果复制对象数组,那么只是复制了对象的引用,而不是对象本身的拷贝。这种复制称为浅复制。
对数组的任何越界操作都会导致异常。
- System.arraycopy()不会执行自动包装和自动拆包,两个数组必须具有相同的确切类型。
数组比较
Arrays.equals()
可以使用Arrays.equals()来比较两个数组是否相等,判断相等的条件是元素个数相等、对应下标的元素也相等。
int[] a1 = new int[2];
int[] a2 = new int[2];
int[] a3 = new int[2];
Arrays.fill(a1,1);
Arrays.fill(a2,2);
Arrays.fill(a3,1);
print(Arrays.equals(a1,a2)); //false
print(Arrays.equals(a1,a3)); //true
数组排序
Arrays.sort()
对数组进行排序,如果是非整型数组,可以实现Comparable接口,重写compareTo方法来对数组按照自己的需要进行排序。
//可重写的方法
public int compareTo(XXXX xx){
if(){
return -1; // 当前值小于传进来的xx中包含的值
}else if(){
return 0; //二者相等
}else{
return 1; //当前值大于传进来的xx中包含的值
}
}
查找数组下标元素
Arrays.binarySearch()
使用该方法可以在数组中快速查号目标元素的下标,但是这个方法的前提是当前数组必须是拍好序的,否则会产生不可预料的结果。方法中两个参数,第一个为查找的数组,第二个为要查找的元素。如果可以查找到元素,那么返回值大于等于0,否则返回值小于0。
int[] a = {1,2,3,4};
int r = 2; //要查找的数组元素
print(Arrays.binarySearch(a,r)); //1 此时查找的元素是2,他在数组中的位置下标为1,所以返回1.
上一篇: 数组工具类Arrays