天天看点

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 reduceLength 

public static Object arrayReduceLength(Object oldArray,int reduceLength) {  

int newLength = length - reduceLength;  

System.arraycopy(oldArray,0,newArray,0,newLength);  

}  若转载请注明出处!若有疑问,请回复交流!