image.png

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