三月小耳翼成长印象(2021-8)

几种常见的应用

2022-04-02  本文已影响0人  尹凯跃_8期强化班

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; //查无此元素

    }

}

上一篇 下一篇

猜你喜欢

热点阅读