zoukankan      html  css  js  c++  java
  • Java修改数组长度

    java中没有关于修改数组长度的api,在此本人提供了修改数组长度的两个函数:arrayAddLength()和arrayReduceLength().详细见代码. 
    [java] view plaincopyprint?
    import java.lang.reflect.Array;  
      
    /** 
    * Description: This class is used to adjust array length. 
    * @author e421083458 
    */  
    public class ArrayTest {  
      
    /** 
    * @param args 
    */  
    public static void main(String[] args) {  
    int a[]= new int[]{0,1,2,3,4,5};  
    int b[]= new int[]{0,1,2,3,4,5};  
    a = (int[]) arrayAddLength(a,2);  
    b = (int[]) arrayReduceLength(b,2);  
    //out print array lenght  
    System.out.println(a.length);  
    for (int i=0;i<a.length;i++){  
    System.out.print(a[i]);  
    }  
    System.out.println();  
      
    System.out.println(b.length);  
    for (int i=0;i<b.length;i++){  
    System.out.print(b[i]);  
    }  
    }  
    /** 
    * Description: Array add length 
    * @param oldArray 
    * @param addLength 
    * @return Object 
    */  
    public static Object arrayAddLength(Object oldArray,int addLength) {  
    Class c = oldArray.getClass();  
    if(!c.isArray())return null;  
    Class componentType = c.getComponentType();  
    int length = Array.getLength(oldArray);  
    int newLength = length + addLength;  
    Object newArray = Array.newInstance(componentType,newLength);  
    System.arraycopy(oldArray,0,newArray,0,length);  
    return newArray;  
    }  
    /** 
    * Description: Array reduce lenght 
    * @param oldArray 
    * @param reduceLength 
    * @return Object 
    */  
    public static Object arrayReduceLength(Object oldArray,int reduceLength) {  
    Class c = oldArray.getClass();  
    if(!c.isArray())return null;  
    Class componentType = c.getComponentType();  
    int length = Array.getLength(oldArray);  
    int newLength = length - reduceLength;  
    Object newArray = Array.newInstance(componentType,newLength);  
    System.arraycopy(oldArray,0,newArray,0,newLength);  
    return newArray;  
    }  
    }  
  • 相关阅读:
    Java:线程的六种状态及转化
    Java:多线程概述与创建方式
    小白学Java:RandomAccessFile
    如何用IDEA开启断言
    如何通过IDEA添加serialVersionUID
    小白学Java:I/O流
    更改IDEA相对路径
    小白学Java:File类
    小白学Java:内部类
    Leetcode数组题*3
  • 原文地址:https://www.cnblogs.com/jym-sunshine/p/4846928.html
Copyright © 2011-2022 走看看