ArrayUtils 类

  需要添加的maven包:

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

  1、判断数组是否为空:

ArrayUtils.isEmpty(new String[]{});  
//ArrayUtils实现:
public static boolean isEmpty(Object[] array) { return array == null || array.length == 0; }

  2、数组添加元素,合并两个数组

public static <T> T[] addAll(T[] array1, T... array2) {
if (array1 == null) { return clone(array2); } else if (array2 == null) { return clone(array1); } else { Class<?> type1 = array1.getClass().getComponentType(); T[] joinedArray = (Object[])((Object[])Array.newInstance(type1, array1.length + array2.length)); System.arraycopy(array1, 0, joinedArray, 0, array1.length); try { System.arraycopy(array2, 0, joinedArray, array1.length, array2.length); return joinedArray; } catch (ArrayStoreException var6) {//这里的catch貌似没什么用,进这个方法的肯定类型都一致呀,不知道我是否理解有误 Class<?> type2 = array2.getClass().getComponentType(); if (!type1.isAssignableFrom(type2)) { throw new IllegalArgumentException("Cannot store " + type2.getName() + " in an array of " + type1.getName(), var6); } else { throw var6; } } } }

3、向一个数组添加一个元素

    public static int[] add(int[] array, int element) {
        int[] newArray = (int[])((int[])copyArrayGrow1(array, Integer.TYPE));
        newArray[newArray.length - 1] = element;
        return newArray;
    }

  private static Object copyArrayGrow1(Object array, Class<?> newArrayComponentType) {
        if (array != null) {
            int arrayLength = Array.getLength(array);
            Object newArray = Array.newInstance(array.getClass().getComponentType(), arrayLength + 1);
            System.arraycopy(array, 0, newArray, 0, arrayLength);
            return newArray;
        } else {
            return Array.newInstance(newArrayComponentType, 1);
        }
    }

/* 1. ArrayUtils.isEmpty(strs) : 判断数组是否为空 , 不为空返回false,为空true */
  
   ArrayUtils.isEmpty(new String[]{"21","是"});//结果是false
   ArrayUtils.isEmpty(new String[]{""});//结果是false
   ArrayUtils.isEmpty(new String[]{});//结果是true
  
  /* 2. ArrayUtils.isNotEmpty(strs) : 判断数组是否不为空 , 不为空返回true,为空false */
  
   ArrayUtils.isNotEmpty(new String[]{"21","是"});//结果是true
   ArrayUtils.isNotEmpty(new String[]{""});//结果是true
   ArrayUtils.isNotEmpty(new String[]{});//结果是false
   
  /* 3. ArrayUtils.isSameLength(strs, strs2) : 判断两个数组长度是否相等, 长度相等返回true,否则返回false 。相比较的两个数组类型必须相同*/ 
   
   ArrayUtils.isSameLength(new String[]{"21","是"}, new String[]{"21","是"});//返回false
   
  /* 4. ArrayUtils.isSameType(strs, strs2) :判断两个数组的类型是否相同,相同返回true,否则返回false*/ 
   
   ArrayUtils.isSameType(new String[]{"21","是"}, new Integer[]{3});
   
  /* 5. ArrayUtils.isEquals(strs, strs2) 判断两个数组是否相等   */
   
   ArrayUtils.isEquals(strs, strs);//结果是true
   
  /* 6. ArrayUtils.toString() 将一个数组转换成String,用于打印 */
   
   ArrayUtils.toString(new String[]{"21","是"});//结果是:{21,是}
   
  /* 7. ArrayUtils.clone  赋值 (克隆) 数组  */


   Object[] s =ArrayUtils.clone(new Object[]{"33","yy"});
   
  /* 8. ArrayUtils.subarray  截取 子数组 : 根据 起始索引 startIndexInclusive 到 结束索引startIndexInclusive */
   
   Object[] s1 =ArrayUtils.subarray(new Object[]{"33","yy","uu"}, 0, 1);//结果是返回数组 :[33] 
   
   Object[] s2 =ArrayUtils.subarray(new Object[]{"33","yy","uu"}, 0, 2);//结果是返回数组 :[33, yy] 
   
  /* 9. ArrayUtils.indexOf  查询某个object在数组中的位置,可是指定起始搜索位置*/
   
   int index=ArrayUtils.indexOf(new Object[]{"33","yy","uu"}, "uu" );//结果是2
   int index1=ArrayUtils.indexOf(new Object[]{"33","yy","uu"}, "uu",2 );//结果是2
   int index3=ArrayUtils.indexOf(new Object[]{"33","yy","uu"}, "uu",3 );//结果是-1
  
  /* 10. ArrayUtils.lastIndexOf 反向查询某个object在数组中的位置  可是指定起始搜索位置*/ 
   
   int index11=ArrayUtils.lastIndexOf(new Object[]{"33","yy","uu"}, "33" );//结果是0
   int index22=ArrayUtils.lastIndexOf(new Object[]{"33","yy","uu"}, "33",2 );
   
  /* 11. ArrayUtils.contains 查询某个object是否在数组中 */  
   
  /* 12. ArrayUtils.reverse 反转数组 */  
   
   ArrayUtils.reverse(new String[]{"22","yy"});//结果是:{"yy","22"}
   
  /* 13. ArrayUtils.add 添加一object到数组*/ 
   
   String[] t={"22","yy"};
   String[] gg=(String[]) ArrayUtils.add(t, "jj");//{"22","yy","jj"}
  
  /* 14. ArrayUtils.addAll 合并两个数组*/ 
   
   String[] ggo=(String[]) ArrayUtils.addAll(new String[]{"22","yy"},new String[]{ "jj"});//结果是:[22, yy, jj]
   
  /* 15. ArrayUtils.remove 删除数组某个位置的元素*/ 
   
   String[] gg4=(String[]) ArrayUtils.remove(new String[]{"22","yy"}, 1);
  
  /* 16. ArrayUtils.removeElement 删除数组中某个对象*/ 
   
   String[] ggpp=(String[]) ArrayUtils.removeElement(new String[]{"22","yy"}, "yy");

猜你喜欢

转载自www.cnblogs.com/yaohuiqin/p/9284283.html