`
- 浏览:
23072 次
- 性别:
- 来自:
美丽春城
-
Java中给数组动态扩容的方法,代码如下:
1import java.lang.reflect.Array;
2
3/**
4 * 数组动态扩容
5 * @author Administrator
6 *
7 */
8public class ArrayGrow {
9
10 /**
11 * 动态给数组扩容
12 * @param obj 需要扩容的数组
13 * @param addLength 给数组增加的长度
14 * @return
15 */
16 @SuppressWarnings("unchecked")
17 public static Object arrayGrow(Object obj, int addLength) {
18 Class clazz = obj.getClass();
19 if(!clazz.isArray()) {
20 return null;
21 }
22 Class componentType = clazz.getComponentType();
23 int length = Array.getLength(obj);
24 int newLength = length + addLength;
25 Object newArray = Array.newInstance(componentType, newLength);
26 System.arraycopy(obj, 0, newArray, 0, length);
27 return newArray;
28 }
29
30 public static void main(String[] args) {
31 int[] a = {1, 2, 3};
32 a = (int[]) arrayGrow(a, 3);
33 for (int i = 0; i < a.length; i++) {
34 System.out.print("a[" + i + "] = " + a[i] + " ");
35 }
36 System.out.println();
37
38 String[] b = {"Jade", "TT", "JadeLT"};
39 b = (String[]) arrayGrow(b, 3);
40 for (int i = 0; i < b.length; i++) {
41 System.out.print("b[" + i + "] = " + b[i] + " ");
42 }
43 }
44}
main方法里的测试数据输出结果如下:
a[0] = 1 a[1] = 2 a[2] = 3 a[3] = 0 a[4] = 0 a[5] = 0
b[0] = Jade b[1] = TT b[2] = JadeLT b[3] = null b[4] = null b[5] = null
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
Java数组扩容的原理 1)Java数组对象的大小是固定不变的,数组对象是不可扩容的。 2)利用数组复制方法可以变通的实现数组扩容。 3)System.arraycopy()可以复制数组。 4)Arrays.copyOf()可以简便的...
打破数组的固定长度局限性!使之逻辑延长
本压缩包文件"数组的扩容和链表结构.zip"包含了关于Java数组扩容和链表结构存储的相关知识点,我们将详细探讨这两个主题。 首先,我们来看Java数组。数组是一种线性数据结构,它在内存中连续存储相同类型的数据元素...
在提供的代码文件中,`VariableLengthArrayList.java`可能是实现动态数组的类,它可能包含上述的初始化、扩容、插入和删除等方法。`ListInterface.java`可能定义了一个接口,描述了线性表应具备的基本操作,如`add()...
Java数组的扩容代码示例 Java数组的扩容是Java编程中的一种常见操作,用于在数组中插入新的元素时扩展数组的长度。在Java中,数组是一种固定长度的数据结构,无法动态地增加或减少其长度,而扩容操作正是解决这个...
Java数组扩容实现方法解析 Java数组扩容是指在Java语言中,对数组容量进行扩展,以满足程序的需求。数组扩容是Java编程中非常重要的一部分,正确地扩容数组可以提高程序的性能和效率。今天,我们将详细介绍Java...
数组排序扩容查角标操作.java
总结来说,Java中的动态数组主要通过ArrayList类实现,它基于数组并提供自动扩容功能,方便我们处理动态数据。理解ArrayList的内部工作原理和优化策略对于编写高效、健壮的Java代码至关重要。通过阅读和分析源码,...
Java数组扩容实例代码 Java数组扩容实例代码主要介绍了Java数组扩容实例代码,具有一定借鉴价值。需要的朋友可以参考下。 Java数组扩容的实现方式有两种:一种是使用循环来实现扩容,另一种是使用Java中的库函数...
通过以上讲解,我们可以看到Java数组扩容是一个涉及内存管理、性能优化和数据结构理解的重要概念。理解和掌握这个过程有助于编写更高效、更灵活的代码。在实际开发中,根据具体需求选择合适的扩容策略和数据结构,...
2. **指针操作**:使用指针`pArray`来动态改变其所指向的内存块,实现了数组的扩容。 3. **循环与条件判断**:`while`循环用于持续接收用户输入,直到输入负数为止。在循环内部,使用条件判断`count == max`来检测...
虽然数组在某些方面很方便,但它也有一些限制,如大小固定、不支持动态扩容等。Java集合框架(如ArrayList、LinkedList等)提供了更灵活的数据存储和操作方式,弥补了数组的不足。 8. **异常处理** 当试图访问...
数组扩容和缩减 java
* 固定长度,不能动态扩容 * 不能存储不同类型的元素 * 需要手动管理内存 Java 数组的应用场景包括: * 数据存储和处理 * 算法实现 * 数据结构实现 * 文件处理 Java 数组的相关概念包括: * 多维数组 * 数组列表...
#### 1.2 数组扩容 - **扩容必要性**:定义数组后,其长度固定不变。如果需要增加更多元素,则需要进行扩容。 ```java int[] oldArray = {1, 2, 3}; int[] newArray = new int[oldArray.length * 2]; // 扩容为...
Java的ArrayList类提供了便利的数组操作,包括动态扩容和数组合并。我们可以在ArrayList中添加数组元素,然后使用toArray()方法转换回数组。 ```java int[] array1 = {1, 2, 3}; int[] array2 = {4, 5, 6}; ...
- 扩容:当数组满时,ArrayList会创建一个新的容量为原容量1.5倍的新数组,然后将旧数组的元素复制到新数组,这个过程的时间复杂度为O(n)。 在实现动态数组链表时,例如`MyLinkedList.java`可能包含自定义的链表...
### Java编程经典案例分析:“查找数组最小值,并将数组扩容成新数组” #### 背景与目标 在本案例中,我们通过一个具体的Java程序来实现以下功能: 1. **随机生成一个包含10个元素(每个元素的取值范围为0到100...
这个简单的实现虽然没有涵盖Java SDK中HashMap的所有特性,如动态扩容、负载因子等,但它清晰地展示了哈希表的基本工作原理:使用数组存储,通过哈希函数定位,利用链表解决冲突。这种实现方式对于理解HashMap的内部...
这些集合类提供了更多的功能,比如动态扩容,但相比数组,它们的元素访问速度较慢。 总的来说,"java数组总结共9页.pdf.zip"这个文档很可能涵盖了以上这些内容,详细介绍了Java数组的基础知识和常见操作。如果想...