java数组Arrays/ArrayUtils工具类常见操作

1.数组排序

jdk中自带的Arrays工具类可以实现对数组排序功能。

import java.util.Arrays;
    
    public static void sortArray(int[] array) {
        // 直接在原数组上进行排序
        Arrays.sort(array);
    }

注意sort方法是对数组原地排序,并不会返回一个新数组,返回类型为void。

如果要逆序排,可以按如下操作

import java.util.Collections;
import org.apache.commons.lang3.ArrayUtils;

    public static void sortArrayDesc(int[] array) {
        Integer[] newArray = ArrayUtils.toObject(array);
        Arrays.sort(newArray, Collections.reverseOrder());
    }

传入一个Comparator接口的实现类REVERSE_ORDER,即可实现逆序排列。
注意此时不能使用基本类型int, long, double这种,需要转换成相应的包装类。

2.数组逆序

commons-lang包 org.apache.commons.lang.ArrayUtils类,有许多针对数组的操作,下面我们挑一些常用的方法示例。

首先在pom文件中添加如下依赖,导入commons-lang包。

        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
            <version>3.5</version>
        </dependency>

对数组进行反转如下

    public static void reverse(int[] array) {
        // 直接在原数组上进行反转
        ArrayUtils.reverse(array);
    }

3.原始类型与对象类型数据转换

    public static void op3() {
        int[] array = {1, 2, 3, 4, 5};
        // 原始类型数组转换成对象类型数组
        Integer[] newArray = ArrayUtils.toObject(array);
        for(int element : newArray) {
            System.out.print(element + " ");
        }
        System.out.println();

        // 对象类型数组转换成原始类型数组
        Integer[] ints = {6, 7, 8, 9};
        int[] newInts = ArrayUtils.toPrimitive(ints);
        for(int element : newInts) {
            System.out.print(element + " ");
        }
    }

4.其他数组常用操作

    public static void op2() {
        int[] array = {1, 2, 3};
        // 添加一个元素,并生成新数组
        int[] newArray = ArrayUtils.add(array, 4);
        int[] array2 = {5, 6};
        // 合并两个数组
        array = ArrayUtils.addAll(newArray, array2);
        // 判断数组中是否存在某个元素
        boolean flag = ArrayUtils.contains(array, 5);
        // 判断数组是否为空
        boolean isEmpty = ArrayUtils.isEmpty(array);
        // 判断数组是否包含指定值,如果有返回index,否则返回-1
        int index = ArrayUtils.indexOf(array, 5);
        // 删除数组中指定index元素
        array = ArrayUtils.remove(array, 0);
        // printarr(array); [2, 3, 4, 5, 6]
        // 截取子数组,不包含右侧元素,返回新数组
        array = ArrayUtils.subarray(array, 0, array.length - 2);
    }

猜你喜欢

转载自blog.csdn.net/bitcarmanlee/article/details/130712643