import java.util.Arrays;
import com.sun.xml.internal.bind.v2.runtime.unmarshaller.XsiNilLoader.Array;
public class Array_method {
public static void main(String[] args) {
int[] arr_test = {5,9,0,17,8,37,97};
int[] arr1 = new int[10];
//数组的复制(1)
System.arraycopy(arr_test, 1, arr1, 2, 4);
/*
* 参数1:制定目标数组
* 参数2:目标数组从 参数2 下标位置开始复制
* 参数3:接收数组
* 参数4:接收数组从 参数4 下标位置开始接收
* 参数5:目标数组中要复制元素的个数
*/
System.arraycopy(arr_test, 0, arr1, 0, arr_test.length);
for(int i = 0;i < arr1.length;i++){
System.out.println(arr1[i] + "");
}
//将数组转换成字符串
String s = Arrays.toString(arr_test);
System.out.println(s);
System.out.println(arr_test);
//复制数组到一个新数组的方法(2)
/*
* java中的数组,一经定义,元素个数就已经确定,不可更改
* 但是我们可以通过复制数组的方式,进行扩容
*/
//可以使用此方法给原数组扩容
int[] arr_src = {40,60,10,5,100};
int[] arr_copy = Arrays.copyOf(arr_src, arr_src.length+2);
System.out.println(Arrays.toString(arr_src));
System.out.println(Arrays.toString(arr_copy));
//数组的排序
//原数组的基础上排序的,会改变原数组内部的状态
Arrays.sort(arr_test);
for(int i = 0;i < arr_test.length;i++){
System.out.println(arr_test[i] + " ");
}
System.out.println(Arrays.toString(arr_test));
//判断数组是否相等
//相等条件:同一个下标位置上的元素的值要相等
boolean a = Arrays.equals(arr_test, arr1);
System.out.println(a);
int[] arr2 = {10,50,40,30};
int[] arr3 = {10,50,30,40};
boolean a1 = Arrays.equals(arr2, arr3);
System.out.println(a1);
//给数组设定一个默认值,来替换整个数组
//这也是一个原数组上进行的方法
int[] emp = new int[10];
System.out.println(Arrays.toString(emp));
Arrays.fill(emp, 50);
System.out.println(Arrays.toString(emp));
//判断给定的值是否在数组中
/*
* (如有重复(2次重复),只返回第一个位置的下标,
* 如果3次及其以上的重复,只返回不确定的一个正数,
* 如果传入的只在数组中不存在,则返回一个负数
*/
//在使用binarySearch()方法之前,一定要先将数组排序
int[] find_index = {3,0,3,4,3,3,4,4,3};
Arrays.sort(find_index);
System.out.println(Arrays.toString(find_index));
int index_of_20 = Arrays.binarySearch(find_index, 4);
System.out.println(index_of_20);
//Math.random()方法表示0~1含0不含1的随机数
System.out.println((int)Math.random()*100);
}
}