java Arrays类_学习笔记

本文介绍了Java中的Arrays类,包括其用于显示数组内容、排序、二分搜索等常用方法。示例代码展示了如何使用Arrays.sort()进行升序排序及自定义Comparator实现降序排序。还分享了自定义比较器对象排序的规则技巧,即返回正整数表示左边大于右边,负整数表示左边小于右边,0表示相等。
摘要由CSDN通过智能技术生成

Arrays类的介绍

Arrays类的排序方法


Arrays类的介绍

 Arrays类是数组操作工具类 专门用于操作数组元素的一个类

Arrays类的常用方法:

方法

说明

public static String toString​(类型[] a)

返回数组的内容(字符串形式)

public static void sort​(类型[] a)

对数组进行默认升序排序

public static <T> void sort​(类型[] a, Comparator<? super T> c)

使用比较器对象自定义排序

public static int binarySearch​(int[] a, int key)

二分搜索数组中的数据,存在返回索引,不存在返回-1

public static void main(String[] args) {
        //定义一个数组
        int[] arr = {5,2,6,4};

        //使用toString()方法返回数组内容
        String r = Arrays.toString(arr);
        System.out.println(r); //输出打印

        //使用方法排序 默认升序
        Arrays.sort(arr);

        //二分搜索 返回元素索引位置(使用前 先必须将数组排好序)
        int i = Arrays.binarySearch(arr,4);//若没有该元素则返回 -(应该插入的位置索引+1)
        System.out.println(i);

    }

Arrays类的排序方法

 自定义比较对象Comparator比较器的支持: 

方法

说明

public static void sort​(类型[] a)

对数组进行默认升序排序

public static <T> void sort​(类型[] a, Comparator<? super T> c)

使用比较器对象自定义排序

import java.util.Arrays;
import java.util.Comparator;

public class test {
    public static void main(String[] args) {
       //sort方法对于默认有特征性的数组是升序排序的
        int[] unm = {11,33,22,55};
        Arrays.sort(unm);
        System.out.println(Arrays.toString(unm));//输出

        //若需要降序排序(自定义比较强对象) 只能支撑引用类型的排序
        Integer[] un = {11,33,22,55}; //Integer为一个引用类型
        Arrays.sort(un, new Comparator<Integer>() {
            @Override
            public int compare(Integer integer, Integer t1) {//参数1:被排列的数组 必须是引用类型对象
                                                                //参数2: 匿名内部类对象 表示一个比较强对象
                // 自己自定排序规则
                    //java官方 升序比较规则的写法:
//                if (integer > t1){
//                    return 1;
//                }else if (integer < t1){
//                    return -1;
//                }
//                return 0;

                // 默认升序的写法
//                return integer - t1;

                return t1 - integer; //降序写法

            }
        });
        System.out.println(Arrays.toString(un));

    }
}

 

 

自定义比较器对象排序规则的技巧: 

如果认为左边数据 大于 右边数据 返回正整数

如果认为左边数据 小于 右边数据  返回负整数

如果认为左边数据  等于 右边数据  返回0

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

open_test01

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值