
package com.itheima.d7_arrays;
import java.util.Arrays;
public class ArraysDemo1 {
public static void main(String[] args) {
// 目标:学会使用Arrays类的常用API,并理解其原理
int[] arr = {10,2,55,23,24,100};
System.out.println(arr); // 输出数组在内存中的地址
// 1. 打印数组内容的API
String rs = Arrays.toString(arr); // 使用Arrays类的toString方法,将数组转换成字符串(打印直接是内容)
System.out.println(rs); //[10, 2, 55, 23, 24, 100]
// 一步到位 将数组一步到位打印内容
System.out.println(Arrays.toString(arr));
// 2.排序的API(默认自动对数组元素进行升序排序)
Arrays.sort(arr); // 将数组升序排序 [2, 10, 23, 24, 55, 100]
System.out.println(Arrays.toString(arr)); // 将升序排序后,用toString方法将数组内容打印数来
// 3. 二分搜索技术(前提数组必须排好序才支持,否则出bug)
//(因为二分搜索技术,先从中间劈开,[2, 10, 23, 24, 55, 100] 例如,这个数组从23开始劈开,要找55,那么左边的元素都不看了)
int index = Arrays.binarySearch(arr, 55); // 二分搜索技术,得到的是一个索引
System.out.println(index); // 找到了返回改索引,没找到返回 -1
int index2 = Arrays.binarySearch(arr, 56); // 输出 -6 // 返回不存在元素的规律:(应该插入的位置索引 + 1)
System.out.println(index2); // -6
// 注意: 数组如果没有排好序,可能找不到存在的元素,从而出现bug!
int[] arr2 = {10, 36, 34, 25, 13, 24, 234, 1000};
// 返回-7 没有排好序,所以没找到
System.out.println(Arrays.binarySearch(arr2, 36)); // 这是没有排好序查找
}
}