最近正在看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集合了。
(2)Java 中的数组为静态的 1) 所谓静态的数组是指其长度大小是固定的(利用 length 属性可以获得实际的长度,因 为在每个数组对象中都有 1 个 length 的 final 属性变量,这个变量指定了数组的大小, 即数组可以...
反射机制用Java描述下载资料 import java.lang.reflect.Array; public class ArrayTest { public static void main(String[] args){ try{ //创建一个元素类型为String,长度为10的数组 Object arr=Array....
动态调整数组长度;java为数据结构中的列表定义了一个接口类java.util.list同时提供了3个实现类,分别是ArrayList、Vector、LinkedList使用; 生成不重复的随机数序列;列表、集合与数组的互相转换;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...
实例077 创建长度可变的数组 117 实例078 利用反射重写toString()方法 119 第8章 字符串与包装类 121 实例079 将数字格式化为货币字符串 122 实例080 货币金额大写格式 123 实例081 String类格式化当前日期 125 实例...
3 动态调整数组长度 4. 4 矩阵 4. 5 ArrayList. Vector和LinkedList 4. 6 生成不重复的随机数序列 4. 7 自定义队列 4. 8 对List排序 4. 9 HashSet. LinkedHashSet和TreeSet 4. 10 列表...
如何获得数组的长度? 46.访问修饰符“public/private/protected/缺省的修饰符”的使用 47.用关键字final修饰一个类或者方法时,有何意义? 48.掌握类和对象的概念,掌握面向对象编程的本质 49.静态变量和静态...
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 ...
第9章 Java异常处理与反射机制 183 实例73 运用throws、throw、try与catch 183 实例74 throws声明异常的实例 185 实例75 自定义异常类 187 实例76 使用finally避免资源漏洞 189 实例77 反射机制 191 第10章 I/...
实例159 创建长度可变的数组 206 实例160 利用反射重写toString()方法 208 实例161 反射与动态代理 209 7.3 常见的未检查型异常 210 实例162 算数异常 210 实例163 数组存值异常 211 实例164 数组下标越界异常 212 ...
{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}{...
ArrayList 和 Vector 是采⽤数组⽅式存储数据的,是根据索引来访问元素的,都可以 根据需要⾃动扩展内部数据长度,以便增加和插⼊元素,都允许直接序号索引元素,但 是插⼊数据要涉及到数组元素移动等内存操作,所以...
答:string str = null 是不给他分配内存空间,而string str = \"\" 给它分配长度为空字符串的内存空间。 25.请详述在dotnet中类(class)与结构(struct)的异同? 答:Class可以被实例化,属于引用类型,是分配在内存的...