免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4275 | 回复: 0
打印 上一主题 下一主题

Java数组自动增长实现 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-03-07 15:01 |只看该作者 |倒序浏览
转:javazy

Java数组自动增长实现




需要用到java.lang.reflect包中Array类的一些方法。
最关键的是Array类中的静态方法newInstance,他能构造新数组。在调用它时必需提供两个参数,一个是数组的元素类型,一个是新数组的长度。
  1. public Object arrayGrow(Object o) {
  2. Class cl = o.getClass();
  3. if (!cl.isArray())return null;
  4. Class componentType = cl.getComponentType();
  5. int length = Array.getLength(o);
  6. int newLength = length * 11 / 10 + 10;
  7. Object newArray = Array.newInstance(componentType, newLength);
  8. System.arraycopy(o, 0, newArray, 0, length);
  9. return newArray;
  10. }
复制代码
使用方法
  1. String[] a = { "aa", "bb", "cc", "dd"};
  2. a = (String[]) arrayGrow(a);
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP