编写一个通用方法,其功能是将数组扩展到10%+10个元素(转载请注明出处) 1 package cn.reflection; 2 3 import java.lang.reflect.Array; 4 5 public class ArrayGrowTest { 6 pu ...
编写一个通用方法,其功能是将数组扩展到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 }
海外公司注册、海外银行开户、跨境平台代入驻、VAT、EPR等知识和在线办理:https://www.xlkjsw.com
原标题:使用泛型对java数组扩容
关键词:JAVA
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:
admin#shaoqun.com
(#换成@)。