• 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");

  • 相关阅读:
    第二十一节:async异步函数和await关键字详解、异常处理方案
    第二十节:生成器/迭代器详解、生成器替代迭代器、异步处理方案
    每日收获
    前端常见知识图谱收集 蓝色帅
    jmap dump
    openresty nginx Max open files
    ABFramework框架中增加的内容
    cxgrid单击某一行,此行增加背景色
    CXGRID中行背景色根据数据库某一字段值发生变化,如审核状态
    ABFramework中表格和打印部分是英文的解决方法
  • 原文地址:https://www.cnblogs.com/yaohuiqin/p/9284283.html
Copyright © 2020-2023  润新知