- 论坛徽章:
- 0
|
转:javazy
Java数组自动增长实现
需要用到java.lang.reflect包中Array类的一些方法。
最关键的是Array类中的静态方法newInstance,他能构造新数组。在调用它时必需提供两个参数,一个是数组的元素类型,一个是新数组的长度。- public Object arrayGrow(Object o) {
- Class cl = o.getClass();
- if (!cl.isArray())return null;
- Class componentType = cl.getComponentType();
- int length = Array.getLength(o);
- int newLength = length * 11 / 10 + 10;
- Object newArray = Array.newInstance(componentType, newLength);
- System.arraycopy(o, 0, newArray, 0, length);
- return newArray;
- }
复制代码 使用方法- String[] a = { "aa", "bb", "cc", "dd"};
- a = (String[]) arrayGrow(a);
复制代码 |
|