`
wzhongyu
  • 浏览: 23072 次
  • 性别: Icon_minigender_1
  • 来自: 美丽春城
社区版块
存档分类
最新评论

Java 数组动态扩容

    博客分类:
  • Java
阅读更多
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 = {123};
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
分享到:
评论

相关推荐

    java数组扩容2

    Java数组扩容的原理  1)Java数组对象的大小是固定不变的,数组对象是不可扩容的。  2)利用数组复制方法可以变通的实现数组扩容。  3)System.arraycopy()可以复制数组。  4)Arrays.copyOf()可以简便的...

    java数组扩容

    打破数组的固定长度局限性!使之逻辑延长

    数组的扩容和链表结构.zip

    本压缩包文件"数组的扩容和链表结构.zip"包含了关于Java数组扩容和链表结构存储的相关知识点,我们将详细探讨这两个主题。 首先,我们来看Java数组。数组是一种线性数据结构,它在内存中连续存储相同类型的数据元素...

    用Java动态数组扩充实现线性表

    在提供的代码文件中,`VariableLengthArrayList.java`可能是实现动态数组的类,它可能包含上述的初始化、扩容、插入和删除等方法。`ListInterface.java`可能定义了一个接口,描述了线性表应具备的基本操作,如`add()...

    Java数组的扩容代码示例

    Java数组的扩容代码示例 Java数组的扩容是Java编程中的一种常见操作,用于在数组中插入新的元素时扩展数组的长度。在Java中,数组是一种固定长度的数据结构,无法动态地增加或减少其长度,而扩容操作正是解决这个...

    Java数组扩容实现方法解析

    Java数组扩容实现方法解析 Java数组扩容是指在Java语言中,对数组容量进行扩展,以满足程序的需求。数组扩容是Java编程中非常重要的一部分,正确地扩容数组可以提高程序的性能和效率。今天,我们将详细介绍Java...

    数组排序扩容查角标操作.java

    数组排序扩容查角标操作.java

    java 动态数组的体现

    总结来说,Java中的动态数组主要通过ArrayList类实现,它基于数组并提供自动扩容功能,方便我们处理动态数据。理解ArrayList的内部工作原理和优化策略对于编写高效、健壮的Java代码至关重要。通过阅读和分析源码,...

    Java数组扩容实例代码

    Java数组扩容实例代码 Java数组扩容实例代码主要介绍了Java数组扩容实例代码,具有一定借鉴价值。需要的朋友可以参考下。 Java数组扩容的实现方式有两种:一种是使用循环来实现扩容,另一种是使用Java中的库函数...

    Java 实例 - 数组扩容源代码-详细设计教程.zip

    通过以上讲解,我们可以看到Java数组扩容是一个涉及内存管理、性能优化和数据结构理解的重要概念。理解和掌握这个过程有助于编写更高效、更灵活的代码。在实际开发中,根据具体需求选择合适的扩容策略和数据结构,...

    //自编的在程序中自动扩展数组的大小

    2. **指针操作**:使用指针`pArray`来动态改变其所指向的内存块,实现了数组的扩容。 3. **循环与条件判断**:`while`循环用于持续接收用户输入,直到输入负数为止。在循环内部,使用条件判断`count == max`来检测...

    java数组_java_java数组_

    虽然数组在某些方面很方便,但它也有一些限制,如大小固定、不支持动态扩容等。Java集合框架(如ArrayList、LinkedList等)提供了更灵活的数据存储和操作方式,弥补了数组的不足。 8. **异常处理** 当试图访问...

    数组扩容和缩减 java

    数组扩容和缩减 java

    Java数组_附件.pdf

    * 固定长度,不能动态扩容 * 不能存储不同类型的元素 * 需要手动管理内存 Java 数组的应用场景包括: * 数据存储和处理 * 算法实现 * 数据结构实现 * 文件处理 Java 数组的相关概念包括: * 多维数组 * 数组列表...

    Java数组讲解

    #### 1.2 数组扩容 - **扩容必要性**:定义数组后,其长度固定不变。如果需要增加更多元素,则需要进行扩容。 ```java int[] oldArray = {1, 2, 3}; int[] newArray = new int[oldArray.length * 2]; // 扩容为...

    java 数组的合并

    Java的ArrayList类提供了便利的数组操作,包括动态扩容和数组合并。我们可以在ArrayList中添加数组元素,然后使用toArray()方法转换回数组。 ```java int[] array1 = {1, 2, 3}; int[] array2 = {4, 5, 6}; ...

    java 动态的数组链表

    - 扩容:当数组满时,ArrayList会创建一个新的容量为原容量1.5倍的新数组,然后将旧数组的元素复制到新数组,这个过程的时间复杂度为O(n)。 在实现动态数组链表时,例如`MyLinkedList.java`可能包含自定义的链表...

    11查找数组最小值,并将数组扩容成新数组.docx

    ### Java编程经典案例分析:“查找数组最小值,并将数组扩容成新数组” #### 背景与目标 在本案例中,我们通过一个具体的Java程序来实现以下功能: 1. **随机生成一个包含10个元素(每个元素的取值范围为0到100...

    Java数组+链表简单实现HashMap的put和get 数组和链表.pdf

    这个简单的实现虽然没有涵盖Java SDK中HashMap的所有特性,如动态扩容、负载因子等,但它清晰地展示了哈希表的基本工作原理:使用数组存储,通过哈希函数定位,利用链表解决冲突。这种实现方式对于理解HashMap的内部...

    java数组总结共9页.pdf.zip

    这些集合类提供了更多的功能,比如动态扩容,但相比数组,它们的元素访问速度较慢。 总的来说,"java数组总结共9页.pdf.zip"这个文档很可能涵盖了以上这些内容,详细介绍了Java数组的基础知识和常见操作。如果想...

Global site tag (gtag.js) - Google Analytics