`
348725767
  • 浏览: 104110 次
  • 性别: Icon_minigender_1
  • 来自: 温州
社区版块
存档分类
最新评论

java反射动态改变数组长度

阅读更多

最近正在看java核心技术,以前看过的,但基本上是大概浏览,并没有深入地去了解细节,只是学学语法,难的基本上是跳过去的。现在开始重新看了,希望系统地看一遍。看到反射时,书上用反射实现了数组动态增加长度,mark一下,供以后自己学习参考。实现如下:

 

 

/**
	 * 扩大数组长度10%+10
	 * @param a 数组
	 * @return 扩充的数组
	 */
	public static Object ArrayGrow(Object a)
	{
		Class class1=a.getClass();
		if(!class1.isArray())
			return null;
		Class componentType=class1.getComponentType();
		int length=Array.getLength(a);
		int newLength=length*11/10+10;
		Object newObj=Array.newInstance(componentType, newLength);
		System.arraycopy(a, 0, newObj, 0, length);
		return newObj;
	}
分享到:
评论

相关推荐

    利用反射实现的数组增长的小程序

    学习反射的时候学到的一点东东。 ­ 用到的知识点: java.lang.reflect.Array ­ List 集合 内部的实现就是这样的。如果下面的新数组的长度增长原来的一倍,就是Vector集合了。

    Java语言程序设计的课程设计项目——利用Java实现地球系动画完整实现实例(第3部分).pdf

    (2)Java 中的数组为静态的 1) 所谓静态的数组是指其长度大小是固定的(利用 length 属性可以获得实际的长度,因 为在每个数组对象中都有 1 个 length 的 final 属性变量,这个变量指定了数组的大小, 即数组可以...

    反射机制用Java描述下载资料

    反射机制用Java描述下载资料 import java.lang.reflect.Array; public class ArrayTest { public static void main(String[] args){ try{ //创建一个元素类型为String,长度为10的数组 Object arr=Array....

    java jdk实列宝典 光盘源代码

    动态调整数组长度;java为数据结构中的列表定义了一个接口类java.util.list同时提供了3个实现类,分别是ArrayList、Vector、LinkedList使用; 生成不重复的随机数序列;列表、集合与数组的互相转换;java为数据结构中...

    疯狂JAVA讲义

    第1章 Java概述 1 1.1 Java语言的发展简史 2 1.2 Java的竞争对手及各自优势 4 1.2.1 C#简介和优势 4 1.2.2 Ruby简介和优势 4 1.2.3 Python的简介和优势 5 1.3 Java程序运行机制 5 1.3.1 高级语言的运行机制 6...

    Java经典编程源码基础例程300.zip

    实例077 创建长度可变的数组 117 实例078 利用反射重写toString()方法 119 第8章 字符串与包装类 121 实例079 将数字格式化为货币字符串 122 实例080 货币金额大写格式 123 实例081 String类格式化当前日期 125 实例...

    Java JDK实例宝典

    3 动态调整数组长度 4. 4 矩阵 4. 5 ArrayList. Vector和LinkedList 4. 6 生成不重复的随机数序列 4. 7 自定义队列 4. 8 对List排序 4. 9 HashSet. LinkedHashSet和TreeSet 4. 10 列表...

    JAVA面试题最全集

    如何获得数组的长度? 46.访问修饰符“public/private/protected/缺省的修饰符”的使用 47.用关键字final修饰一个类或者方法时,有何意义? 48.掌握类和对象的概念,掌握面向对象编程的本质 49.静态变量和静态...

    Java JDK 7学习笔记(国内第一本Java 7,前期版本累计销量5万册)

    5.2.6 不定长度自变量 148 5.2.7 内部类 150 5.2.8 传值调用 151 5.3 重点复习 154 5.4 课后练习 155 chapter6 继承与多态 161 6.1 何谓继承 162 6.1.1 继承共同行为 162 6.1.2 多态与is-a 166 ...

    JAVA 范例大全 光盘 资源

    第9章 Java异常处理与反射机制 183 实例73 运用throws、throw、try与catch 183 实例74 throws声明异常的实例 185 实例75 自定义异常类 187 实例76 使用finally避免资源漏洞 189 实例77 反射机制 191 第10章 I/...

    Java开发实战1200例(第1卷).(清华出版.李钟尉.陈丹丹).part3

    实例159 创建长度可变的数组 206 实例160 利用反射重写toString()方法 208 实例161 反射与动态代理 209 7.3 常见的未检查型异常 210 实例162 算数异常 210 实例163 数组存值异常 211 实例164 数组下标越界异常 212 ...

    Java学习笔记-个人整理的

    {1.10.5}扩充数组对象长度}{36}{subsection.1.10.5} {1.10.6}Problems}{37}{subsection.1.10.6} {1.11}简单算法}{38}{section.1.11} {1.11.1}打乱算法}{38}{subsection.1.11.1} {1.11.2}排序算法}{38}{...

    大数据面试题.pdf

    ArrayList 和 Vector 是采⽤数组⽅式存储数据的,是根据索引来访问元素的,都可以 根据需要⾃动扩展内部数据长度,以便增加和插⼊元素,都允许直接序号索引元素,但 是插⼊数据要涉及到数组元素移动等内存操作,所以...

    net学习笔记及其他代码应用

    答:string str = null 是不给他分配内存空间,而string str = \"\" 给它分配长度为空字符串的内存空间。 25.请详述在dotnet中类(class)与结构(struct)的异同? 答:Class可以被实例化,属于引用类型,是分配在内存的...

Global site tag (gtag.js) - Google Analytics