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

  • 相关阅读:
    luogu P1833 樱花 看成混合背包
    luogu P1077 摆花 基础记数dp
    luogu P1095 守望者的逃离 经典dp
    Even Subset Sum Problem CodeForces
    Maximum White Subtree CodeForces
    Sleeping Schedule CodeForces
    Bombs CodeForces
    病毒侵袭持续中 HDU
    病毒侵袭 HDU
    Educational Codeforces Round 35 (Rated for Div. 2)
  • 原文地址:https://www.cnblogs.com/yaohuiqin/p/9284283.html
Copyright © 2020-2023  润新知