程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA綜合教程 >> 使用泛型對java數組擴容,java數組擴容

使用泛型對java數組擴容,java數組擴容

編輯:JAVA綜合教程

使用泛型對java數組擴容,java數組擴容


編寫一個通用方法,其功能是將數組擴展到10%+10個元素(轉載請注明出處)

 1 package cn.reflection;
 2 
 3 import java.lang.reflect.Array;
 4 
 5 public class ArrayGrowTest {
 6     public static void main(String[] args){
 7         ArrayGrowTest growTest=new ArrayGrowTest();
 8         int[] aInt={1,2,3,4};
 9         System.out.print("原數組:");
10         growTest.printArray(aInt);
11         aInt=(int[]) growTest.goodArrayGrow(aInt);
12         System.out.print("擴容後數組:");
13         growTest.printArray(aInt);
14         
15         String[] aStr={"hello","world","ni","hao","ma"};
16         System.out.print("原數組:");
17         growTest.printArray(aStr);
18         aStr=(String[]) growTest.goodArrayGrow(aStr);
19         System.out.print("擴容後數組:");
20         growTest.printArray(aStr);
21     }
22     /**
23      * 數組擴容方法,支持不同數組類型
24      * @param a  原數組
25      * @return newArray 新數組
26      */
27     public Object goodArrayGrow(Object a){
28         Class cl=a.getClass();
29         if(!cl.isArray()){
30             return null;
31         }
32         Class componentType=cl.getComponentType();   //使用Class類的getComponentType方法確定數組對應的類型
33         int length=Array.getLength(a);   //原長度
34         int newLength=length*11/10+10;   //新長度
35         Object newArray=Array.newInstance(componentType, newLength);  //實例化新數組
36         //為新數組賦值,a代表原數組,第一個0代表原數組復制起始位置,newArray代表新數組,第二個0代表新數組放值起始位置,length代表從原數組中復制多長到新數組
37         System.arraycopy(a, 0, newArray, 0, length);  
38         return newArray;
39     }
40     /**
41      * 輸出數組內容
42      * @param a 需要輸出的數組
43      */
44     public void printArray(Object a){
45         Class cl=a.getClass();
46         if(!cl.isArray()){
47             return ;
48         }
49         Class componentType=cl.getComponentType();  
50         int length=Array.getLength(a);
51         System.out.print(componentType.getName()+"["+length+"]={");
52         for(int i=0;i<length;i++){
53             System.out.print(Array.get(a, i)+ " ");
54         }
55         System.out.println("}");
56     }
57 
58 }

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved