package array;
import java.util.Arrays;
public class ArrayDemo06 {
public static void main(String[] args) {
int[] a = {1,2,3,4,9090,31231,543,21,3,23};
int[] b = {1,2,3,4,5,6,7,8,9,10,11};
System.out.println(a);// [I@1b6d3586
//1.打印数组元素 ① Arrays.toString
System.out.println(Arrays.toString(a));//Arrays的A大写代表一个类
//2.打印数组元素 ②
printArray(a);
//3.排序
Arrays.sort(a);//排序升序
System.out.println(Arrays.toString(a));
//4.给数值赋值 fill
Arrays.fill(a,0);//a,0 就可以了 所有都变为0
// System.out.println(Arrays.toString(a));
Arrays.fill(a,2,4,0);
System.out.println(Arrays.toString(a));
/*
左闭右开区间[2,4)是因为数组也是左开右闭
把第2 3个下标的元素变成0
*/
//5.通过equals方法比较数组中的元素值是否相等
if (Arrays.equals(a,b)){
System.out.println("a数组和b数组相等");
}else {
System.out.println("a数组和b数组不相等");
}
//6.查找数组元素:通过binarySearch方法能对排好的数组进行二分查找法操作
int[] chengji = {99,67,34,32,88,21,100};
Arrays.sort(chengji);//排序升序操作
int index = Arrays.binarySearch(chengji, 34);
/*格式:数组名称,要查找的数字
查询 34所在该数组的下标值
需要把下标返回出来 所以要进行接收Alt+Enter 再Enter
index可以自己命名
*/
System.out.println("下标为:"+index);//2
/*
如果没有排序上边输出-7
所以在使用该方法对数组查询之前必须对数组排序
*/
chengji[index] = 29;
/*
49行通过下标更改元素
Arrays.fill(chengji,2,4,29);这个方法只可以至少更改一个元素
*/
for (int i = 0; i < chengji.length; i++) {
System.out.println(chengji[i]);
}
//循环遍历元素
}
//打印数组元素 ②
public static void printArray(int[] a){
for (int i = 0; i < a.length; i++) {
if (i==0){
System.out.print("[");
}
if (i==a.length-1){//长度是10 但是数字是从0开始数的共数到9就所有数完啦 所以要减1
System.out.print(a[i]+"]");
}else {
System.out.print(a[i]+", ");
}
}
}
}