Apache下的ArrayUtils工具类总结(操作数组,指定元素添加到指定集合)

ArrayUtils中的方法:

1.add():将给定的数据添加到指定的数组中,返回一个新的数组。

2.addAll():合并两个数组。

3.contains():检查该数据在该数组中是否存在,返回一个boolean值。

4.getLength():返回该数组长度。

5.indexOf():从数组的第一位开始查询该数组中是否有指定的数值,存在返回index的数值,否则返回-1。

6.lastIndexOf():从数组的最后一位开始往前查询该数组中是否有指定的数值,存在返回index的数值,否则返回-1。

7.Insert():向指定的位置往该数组添加指定的元素,返回一个新的数组。

8.isEmpty():判断该数组是否为空,返回一个boolean值。

9.isNotEmpty():判断该数组是否为空,而不是null。

10.isSameLength():判断两个数组的长度是否一样,当数组为空视长度为0。返回一个boolean值。

11.isSameType():判断两个数组的类型是否一样,返回一个boolean值。

12.isSorted():判断该数组是否按照自然排列顺序排序,返回一个boolean值。

13.nullToEmpty():

14.remove():删除该数组指定位置上的元素,返回一个新的数组。

15.removeAll():删除指定位置上的元素,返回一个新的数组。

16.removeAllOccurences():从该数组中删除指定的元素,返回一个新的数组。

17.removeElement():从该数组中删除第一次出现的指定元素,返回一个新的数组。

18.removeElements():从该数组中删除指定数量的元素,返回一个新的数组。

19.reverse():数组反转。也可以指定开始和结束的反转位置。

20.subarray():截取数组(包头不包尾),返回一个新的数组。

21.swap():指定该数组的两个位置的元素交换或者指定两个位置后加len的长度元素进行交换。

22.toMap():将数组转换成Map,返回一个map的Object的集合。

23.toObject():将原始数据类型的数组转换成对象类型数组。

24.toPrimitive():将对象类型数组转换成原始数据类型数组。

25.toString():将数组输出为Stirng,返回一个字符串。

26.toStringArray():将Object数组转换为String数组类型。

例子如下:

复制代码
public class ArraryTest {

    public static void main(String[] args) {
        int []array={4,5,9};
        //add()添加方法结果为:{4,5,9,6}
        int[] newArray=ArrayUtils.add(array, 6);
        System.out.println(ArrayUtils.toString(newArray));
        //addAll()方法,结果为:{4,5,9,5,9,6,7}
        int []arrayAll={4,5,9};
        int[] newArrayAll=ArrayUtils.addAll(arrayAll,5,9,6,7);
        System.out.println(ArrayUtils.toString(newArrayAll));
        //contains():结果为:true、false
        System.out.println(ArrayUtils.contains(arrayAll, 9));
        System.out.println(ArrayUtils.contains(arrayAll, 3));
        //getLength():结果为3
        System.out.println(ArrayUtils.getLength(arrayAll));
        //indexOf():2。
        //indexOf(newArrayAll, 9,3):3是指定从哪一位开始查找,返回结果4
        System.out.println(ArrayUtils.indexOf(newArrayAll, 9));
        System.out.println(ArrayUtils.indexOf(newArrayAll, 9,3));
        //lastIndexOf()返回结果是4、2
        System.out.println(ArrayUtils.lastIndexOf(newArrayAll, 9));
        System.out.println(ArrayUtils.lastIndexOf(newArrayAll, 9,3));
        //insert():结果为{4,5,3,9}
        int [] arr=ArrayUtils.insert(2, arrayAll, 3);
        System.out.println("insert"+ArrayUtils.toString(arr));
        //isEmpty():结果为false、true
        int []a=null;
        System.out.println(ArrayUtils.isEmpty(arr));
        System.out.println(ArrayUtils.isEmpty(a));
        //isNotEmpty():结果是false、true
        System.out.println("isNotEmpty:"+ArrayUtils.isNotEmpty(a));
        System.out.println("isNotEmpty:"+ArrayUtils.isNotEmpty(arr));    
        //isSorted():结果为false和true
        int[]sort1={5,6,9,1};
        int [] sort2={1,6,8,9};
        System.out.println("sort1:"+ArrayUtils.isSorted(sort1));
        System.out.println("sort2:"+ArrayUtils.isSorted(sort2));
        //remove():返回结果为{5,6,1}
        int [] newRe=ArrayUtils.remove(sort1, 2);
        for(int nr:newRe){
            System.out.print(nr);
        }
        //reverse():返回new reverse:{1,9,6,5}
        ArrayUtils.reverse(sort1);
        System.out.println("new reverse:"+ArrayUtils.toString(sort1));
        //subarray():返回结果subarray:{3,9}
        int[] sub={7,5,3,9,8,4};
        int [] newsub=ArrayUtils.subarray(sub, 2, 4);
        System.out.println("subarray:"+ArrayUtils.toString(newsub));
        
        Object[] subs={7,5,3,9,8,4};
        Map<Object, Object>map=ArrayUtils.toMap(subs);

    
    }
}

数组的常用判断方法

  • isEmpty(final Object[] array):判断数组是否为空;
  • isNotEmpty(final float[] array):判断数组是否不为空;
  • isSameLength(final char[] array1, final char[] array2):判断两个数组的长度是否相同,要同类型;
  • isSameType(final Object array1, final Object array2):判断两个数组的类型是否相同;
  • isSorted(final int[] array):判断数组是否以自然顺序排序;

      数组的常用判断示例代码

   String[] arr = {"Hello","Word"};
  String[] arr2 = {"34","35","36"};
 int[] intarr = {12,13,14};
 ArrayUtils.isEmpty(arr);             = false
 ArrayUtils.isNotEmpty(arr);          = true
 ArrayUtils.isSameLength(arr2,arr);   = false
 ArrayUtils.isSameType(intarr,arr);   = false
 ArrayUtils.isSorted(intarr);         = true


数组的基本操作

  • add(final T[] array, final T element):该方法向指定的数组中添加一个元素;
  • remove(final T[] array, final int index):移除数组红指定索引位置的元素;
  • addAll(final T[] array1, final T... array2):合并两个数组;
  • removeAll(final char[] array, final int... indices):移除数组红指定的多个索引位置的元素;
  • removeElement(final char[] array, final char element):从数组中删除第一次出现的指定元素;
  • removeAllOccurences(final char[] array, final char element):从数组中移除指定的元素;
  • removeElements(final char[] array, final char... values):从数组中移除指定数量的元素,返回新数组;
  • getLength(final Object array):获取数组的长度;
  • contains(final Object[] array, final Object objectToFind):判断数组中是否包含某一个元素;
  • indexOf(final Object[] array, final Object objectToFind):查找数组中是否存在某元素,返回索引位置;
  • lastIndexOf(final Object[] array, final Object objectToFind):从尾部开始查找指定元素;
  • insert(final int index, final T[] array, final T... values):向数组指定索引位置添加元素;

数组的基本操作示例代码

ArrayUtils.add(arr, "你好");
ArrayUtils.remove(arr,1);
ArrayUtils.removeAll([2, 6, 3], 0, 2)    = [6]
ArrayUtils.removeAll([2, 6, 3], 0, 1, 2) = []
ArrayUtils.removeElement(['a', 'b', 'a'], 'a') = ['b', 'a']
ArrayUtils.removeAllOccurences(arr,"Hello");
ArrayUtils.removeElements(arr,1,2,3);
ArrayUtils.addAll([], [])         = []
ArrayUtils.addAll([null], [null]) = [null, null]
ArrayUtils.addAll(arr,arr2);
ArrayUtils.getLength(arr);
ArrayUtils.contains(arr,"word");
ArrayUtils.indexOf(arr,"word");
说明:数组的很多操作都是返回新的数组,不会对原有数组进行改变;

.数组的转换操作


  • nullToEmpty(final String[] array):将null数组转换为对应类型的空数组;
  • toMap(final Object[] array):将二维数组转换为map,一维数组转换抛出异常;
  • reverse(final char[] array):反转数组,不返回新数组,可以指定反转的区域;
  • subarray(final char[] array, int startIndexInclusive, int endIndexExclusive):数组的截取;包头不包尾;
  • swap(final char[] array, final int offset1, final int offset2):交换数组中指定位置的两个元素;
  • toObject(final int[] array):将原始数据类型的数组转换为对象类型的数组;
  • toPrimitive(final Integer[] array):将对象数据类型的数组转换为原始数据类型的数组
  • toStringArray(final Object[] array):将Object类型的数组转换为String类型的数组;

数组的转换操作示例代码

ArrayUtils.nullToEmpty((String[])null);
String[][] maparr = {{"name","zhangsan"},{"age","23"},{"money","6700"}};
Map<Object, Object> objectObjectMap = ArrayUtils.toMap(maparr);
String[] rearr = {"1", "2", "3", "4"}; 
ArrayUtils.reverse(rearr, 0, 3); = [3, 2, 1, 4]
String[] subarray = ArrayUtils.subarray(rearr, 1, 2);
ArrayUtils.swap([1, 2, 3], 1, 0) = [2, 1, 3]
ArrayUtils.swap([1, 2, 3], 0, 5) = [1, 2, 3]
ArrayUtils.swap([1, 2, 3], -1, 1) = [2, 1, 3]
int[] intarr = {12,11,14};
Integer[] integers = ArrayUtils.toObject(intarr);
int[] ints = ArrayUtils.toPrimitive(integers);
String[] strings = ArrayUtils.toStringArray(integers);
上面所提到的方法都是平时开发时候经常使用的,可以大大的简化我们对数组的基本操作,需要注意的是方法是否返回新数组,是否是对原有数组进行操作。

Collections.addAll(集合,要转换的数据);//将所有指定元素添加到指定集合 ,要添加的元素可以单独指定,也可以作为数组指定

 //String数组转List
String[] strs = {"aa","bb","cc"};
List<String> strsToList2=new ArrayList<>();
Collections.addAll(strsToList2,strs);
for(String s:strsToList2){
    System.out.println(s);
}

posted on 2019-09-24 17:24  UnmatchedSelf  阅读(1211)  评论(0编辑  收藏  举报

导航