【Java 常用类】java.util包(6)Arrays类的常用方法

Java SE 常用类 专栏收录该内容
22 篇文章 0 订阅




前言

Arrays 有非常多对数组的常用方法,都是静态方法,直接调用即可,非常推荐掌握。


一、Arrays

此类包含用来操作数组(比如排序和搜索)的各种方法。此类还包含一个允许将数组作为列表来查看的静态工厂。
在这里插入图片描述

二、使用

1.常用方法

Arrays该类的方法都有多个重载方法,不仅仅只是int类型,其他类也可以。我这里只是简单用int类型举例,其他类型也可以使用。

1.1 二分查找

binarySearch(int[] a, int key)
使用二分搜索法来搜索指定的 int 型数组,以获得指定的值。
binarySearch(int[] a, int fromIndex, int toIndex, int key)
使用二分搜索法来搜索指定的 int 型数组的范围,以获得指定的值。

使用二分查找,进行查找指定元素。如果存在返回下标,如果不存在则返回 - (插入点+1)。

        int[] arr = {1, 2, 3, 4, 5, 6, 7, 8, 9};
        
        // 二分查找
        int i = Arrays.binarySearch(arr, 2);
        System.out.println(i); // 1
        
        // 二分查找
        int i = Arrays.binarySearch(arr, 10);
        System.out.println(i); // -10(-(可插入点+1))
 
        // 二分查找(指定区间从下标0(包括)开始到下标5(不包括))
        int i1 = Arrays.binarySearch(arr, 0, 5, 2);
        System.out.println(i1); // 1
1.2 数组内容的字符串形式

toString(int[] a)
返回指定数组内容的字符串表示形式。

将字符串中的所有元素用字符串存起来。

        int[] arr = {1, 2, 3, 4, 5, 6, 7, 8, 9};

        // 获取数组内容的字符串形式
        String s = Arrays.toString(arr);
        System.out.println(s); // [1, 2, 3, 4, 5, 6, 7, 8, 9]
1.3 数组截取

copyOf(int[] original, int newLength)
复制指定的数组,截取或用 0 填充(如有必要),以使副本具有指定的长度。

从指定数组中,截取某个长度的数组。例如,下面 newArr 中的值是从 arr 中截取5个的元素。

        int[] arr = {1, 2, 3, 4, 5, 6, 7, 8, 9};

        // 数组截取
        int[] newArr = Arrays.copyOf(arr, 5);
        System.out.println(Arrays.toString(newArr)); // [1, 2, 3, 4, 5]
1.4 指定范围数组截取

copyOfRange(int[] original, int from, int to)
将指定数组的指定范围复制到一个新数组。

指定一个范围的数组截取。例如,newArr为arr数组中的下标 0 (包含)到 5 (不包含)的截取。

        int[] arr = {1, 2, 3, 4, 5, 6, 7, 8, 9};

        // 指定范围数组截取
        int[] newArr = Arrays.copyOfRange(arr, 1, 5);
        System.out.println(Arrays.toString(newArr)); // [2, 3, 4, 5]
1.5 比较

equals(int[] a, int[] a2)
如果两个指定的 int 型数组彼此相等,则返回 true。

如果两个数组元素及元素顺序相等,则返回true(两个数组都为 null 时也返回 true)。

        int[] arr = {1, 2, 3, 4, 5, 6, 7, 8, 9};
        int[] arr2 = {1, 2, 3, 4, 5, 6, 7, 8, 9};

        // 比较数组是否相等
        boolean equals = Arrays.equals(arr, arr2);
        System.out.println(equals);
1.6 填充数组

fill(int[] a, int val)
将指定的 int 值分配给指定 int 型数组的每个元素。
fill(int[] a, int fromIndex, int toIndex, int val)
将指定的 int 值分配给指定 int 型数组指定范围中的每个元素。

可以全部填充,也可以将指定范围内的数组填充成指定值。

        int[] arr = {1, 2, 3, 4, 5, 6, 7, 8, 9};

        // 指定数字填充指定范围元素
        Arrays.fill(arr, 0, 3, 0); // 从下标1(包含)开始填充3(不包含)
        System.out.println(Arrays.toString(arr)); // [1, 0, 0, 4, 5, 6, 7, 8, 9]

        // 填充数组中所有元素
        Arrays.fill(arr, 9);
        System.out.println(Arrays.toString(arr)); // [9, 9, 9, 9, 9, 9, 9, 9, 9] 9]
1.7 数组排序

sort(int[] a)
对指定的 int 型数组按数字升序进行排序。
sort(int[] a, int fromIndex, int toIndex)
对指定 int 型数组的指定范围按数字升序进行排序。

可以全部排序,也可以将指定范围内的排序。(该排序算法是一个经过调优的快速排序法)

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

        // 指定范围排序
        Arrays.sort(arr, 2, 6); // 将下标2(包含) 到6(不包含)的元素排序
        System.out.println(Arrays.toString(arr)); // [1, 3, 2, 4, 5, 6]

        // 排序(默认升序)
        Arrays.sort(arr);
        System.out.println(Arrays.toString(arr)); // [1, 2, 3, 4, 5, 6]
1.8 数组转list

asList(T… a) 返回由指定数组支持的固定大小的列表。

数组转成list

        Integer[] ints = {1,2,3};
        List<Integer> integers = Arrays.asList(ints);
        System.out.println(integers);

最后

以上就是Arrays的常用方法,这个类提供的方法非常常用。


相关

更多常用类请查看:【Java SE 常用类】目录

  • 1
    点赞
  • 0
    评论
  • 0
    收藏
  • 打赏
    打赏
  • 扫一扫,分享海报

参与评论 您还未登录,请先 登录 后发表或查看评论
©️2022 CSDN 皮肤主题:终极编程指南 设计师:CSDN官方博客 返回首页

打赏作者

长生的梦呓

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

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

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

打赏作者

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

抵扣说明:

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

余额充值