几种常见的应用

作者: 尹凯跃_8期强化班 | 来源:发表于2022-04-02 22:15 被阅读0次

    deepToString

    public static String deepToString(Object[] a)

    1

    包位置:java.util.Arrays.deepToString()

    返回值:返回指定数组“深层内容”的字符串表示形式。

    解释与用法:如果数组包含作为元素的其他数组,则字符串表示形式包含其内容等。此方法是为了将多维数组转换字符串而设计的。

    字符串表现形式:字符串表示形式由数组的元素列表组成,括在方括号("[]")中。相邻元素用字符 ", "(逗号加空格)分隔。这些元素通过 String.valueOf(Object) 转换为字符串,除非它们是自身的数组。

    举例说明:

    import java.util.Arrays;

    /**

    * Arrays.deepToString()方法打印的是二维数组中一维数组中的值

    * Arrays.toString()方法打印的是二维数组中一维数组的地址

    */

    public class TestDeepToString {

        public static void main(String[] args) {

            int[] array1 = {6, 6, 6};

            int[] array2 = {8, 8, 8};

            int[][] array3 = {array1, array2};

    //        int[][] array4 = {{6, 6, 6}, {8, 8, 8}};

            System.out.println(Arrays.deepToString(array3));    //[[6, 6, 6], [8, 8, 8]]

            System.out.println(Arrays.toString(array3));        //[[I@511d50c0, [I@60e53b93]

        }

    }

    12345678910111213141516

    打印结果:

    [[6, 6, 6], [8, 8, 8]]

    [[I@511d50c0, [I@60e53b93]

    一、选择排序

    package commen;

    import java.util.Arrays;

    public class demo2 {

        public static void main(String[] args) {

            int[] arr = {5,1,3,2};

            for (int i = 0; i < arr.length-1; i++) {

                //定义内部循环,控制选择次数

                for (int j =i + 1; j < arr.length; j++) {

                    if(arr[i]>arr[j]){

                        int temp = arr[i];

                        arr[i] = arr[j];

                        arr[j] = temp;

                }

                }

            }

            System.out.println(Arrays.toString(arr));//输出排序后的数组

        }

    }

    二、二分查找

    基本查找:从前往后一个一个查找。

    结论:在数据量特别大的时候,基本查找从前往后寻找的性能是很差的!

    二分查找:

    二分查询性能好,二分查找前提是必须是拍好序的数据。

    二分查找相当于每次去掉一半的查找范围

    二分查找-----元素不存在

    结论:二分查找正常的检索条件应该是开始位置min<=结束位置max

    package commen;

    public class demo3 {

        public static void main(String[] args) {

            int[] arr = {10,14,16,25,28,30,35,88,100};

            System.out.println(binarySearch(arr , 35));

    //        int n = binarySearch(arr,35);

    //        System.out.println(arr[n]);

            System.out.println(binarySearch(arr,350));

        }

        public static int binarySearch(int[] arr,int data){

            //1、定义一个左边位置  和  右边位置

            int left = 0;

            int right = arr.length-1;

            //2、开始循环,折半查询

            while(left<=right){

                //取中间索引

                int middleIndex = (left + right)/2;

                //3.判断当前中间位置的元素和要找的元素大小的情况

                if (data > arr[middleIndex]) {

                    //往右边找,位置更新为  =  中间索引 + 1

                    left = middleIndex + 1;

                }else if (data < arr[middleIndex]){

                    //往左边找,位置更新为  =  中间索引 - 1

                    right = middleIndex - 1;

                }else{

                    return middleIndex;

                }

            }

            return  -1; //查无此元素

        }

    }

    相关文章

      网友评论

        本文标题:几种常见的应用

        本文链接:https://www.haomeiwen.com/subject/kqjqsrtx.html