Apache commons工具类中的ArrayUtils

Apache commons

Java第三方增强组件包,它是最流行的Java拓展包,它包括了很多的组件,使用对应功能时需要引入不同的jar包

网址:

https://commons.apache.org/proper/commons-lang/javadocs/api-release/index.html

commons-lang 基础语言增强包

commons-collections 集合相关

commons-logging 日志相关

commons-dbcp 数据源连接池

.......

本章主要总结数组工具类的方法

org.apache.commons.lang3 ----->Class ArrayUtils

数组方法总结(更多的方法点击网站了解):

增加元素

insert(int index, 数组元素类型[] array, .. values)(用这个!!!!)

public class Demo01 {
    public static void main(String[] args) {
        int[] arry={1,2,3,4,5,6};
        int[]  newarry= ArrayUtils.insert(1,arry,3,3);
        System.out.println(ArrayUtils.toString(newarry));
        结果{1,3,3,2,3,4,5,6}
    }
}

add(数组元素类型[] array, int index, element)//可以指定位置添加

此方法已被 insert(int index, 数组元素类型[], ...values) 取代,可能会在未来的版本中删除。

例如:
boolean[] arr ={true,false,true,false};
//注意:若果不填写index,默认是在末尾添加
boolean[] newarr= ArrayUtils.add(arr,0,false);
System.out.printf(ArrayUtils.toString(newarr));

addAll(数组元素类型[] array1, ... array2)

将给定数组的所有元素添加到一个新数组中。

添加元素只能在新数组的末尾,不像add中可以指定位置

int[] arry={1,2,3,4,5};
int[] newarr= ArrayUtils.addAll(arry,0,8,9,8);
System.out.println(ArrayUtils.toString(newarr));
结果:{1,2,3,4,5,0,8,9,8}

addFirst(数组元素类型[] array, element)

复制给定数组并将给定元素添加到新数组的开头。

//注意只能添加一个
int[] arry={1,2,3,4,5};
int[] newarr= ArrayUtils.addFirst(arry,99);
System.out.println(ArrayUtils.toString(newarr));
结果:{99,1,2,3,4,5}

删除元素

remove(数组元素类型[] array, int index)

removeAll(数组元素类型[] array, int... indices)

int[] arr = {1, 4, 4, 3, 2, 5, 4};
//删除数组中所有指定的元素(数组中含有指定的元素,全部删除)
int[] newArr = ArrayUtils.removeAllOccurrences(arr, 4);
System.out.println(Arrays.toString(newArr));
结果:1,3,2,5
//删除数组中指定多个下标的元素(根据下标来删除)
int[] newArr1 = ArrayUtils.removeAll(arr, 0, 1, 2);
System.out.println(Arrays.toString(newArr1));
结果:3,2,5,4

值查找

contains(数组元素类型[] array, valueToFind)

如果查找值是否在给定的数组中,则为真

注意:其中double类型比较特殊会多一种方法使用:

contains(double[] array, double valueToFind, double tolerance)如果在公差范围内的值在数组中,则为真

//值查找
int[] arry={1,2,3,4,5};
System.out.println(ArrayUtils.toString(ArrayUtils.contains(arry,10))
//false                   

获取值(以后补充)

get(T[] array, int index))

Integer[] arry={1,2,3,4,5};
System.out.println(ArrayUtils.toString(ArrayUtils.get(arry,2)));

获取值的位置

indexOf(数组元素类型[] array, valueToFind,int startIndex)//查找的起始位置

//注意如果不写int startIndex默认从0开始
Integer[] arry={1,2,3,4,5};
int index = ArrayUtils.indexOf(arry,3,1);
int index1 = ArrayUtils.indexOf(arry,2);
System.out.println(index);//2
System.out.println(index1);//1

lastindexOf(数组元素类型[] array, valueToFind)

//用于查找数组中给定值的最后一个索引。比如数组中有重复元素,可以找到最后一个重复元素的位置
public class Demo01 {
    public static void main(String[] args) {
       int[] arry ={1,2,3,4,5,4};
       int index = ArrayUtils.lastIndexOf(arry,4);
        System.out.println(index);
    }
}

获取数组长度

getLength(Object array)

Integer[] arry={1,2,3,4,5};
System.out.println(ArrayUtils.toString(ArrayUtils.getLength(arry)));

克隆元素

clone(克隆返回类型转换结果并处理 null 的数组)

//最主要的作用现在还无法理解,后面补充

int[] arry={1,2,3,4,5};
System.out.println(ArrayUtils.toString(ArrayUtils.clone(ArrayUtils.addFirst(arry,99))));
posted @ 2022-03-14 18:34  JanoCode  阅读(319)  评论(0)    收藏  举报