
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)); // 这是没有排好序查找 }}