返回顶部

收藏

java实现延长数组的长度

更多

我们知道数组本身是定长的,但是ArrayList之类的类底层实现是数组,但是却是变长的,这是如何做到的呢?

其实是在长度需要扩展时,重新建一个数组,然后将原有数组中的元素复制到新数组中来实现的。复制数组是使用System.arraycopy()方法实现的。

/**
 * Main.java
 *
 * @author cn.outofmemory
 */
public class Main {

    /**
     * Extends the size of an array.
     */
    public void extendArraySize() {

        String[] names = new String[] {"Joe", "Bill", "Mary"};

        //Create the extended array
        String[] extended = new String[5];

        //Add more names to the extended array
        extended[3] = "Carl";
        extended[4] = "Jane";

        //Copy contents from the first names array to the extended array
        System.arraycopy(names, 0, extended, 0, names.length);

        //Ouput contents of the extended array
        for (String str : extended) 
            System.out.println(str);

    }
    /**
     * Starts the program
     *
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        new Main().extendArraySize();
    }
}

上述代码输出如下:

Joe
Bill
Mary
Carl
Jane

标签:java,数组,基础

收藏

0人收藏

支持

0

反对

0

相关聚客文章
  1. root 发表 2015-05-03 08:00:01 重学JAVA基础(八):锁的基本知识
  2. Terry Zhang 发表 2014-04-17 15:27:06 [正则] 字符类型
  3. Terry Zhang 发表 2014-04-27 10:43:29 [集合框架] 接口
  4. 博主 发表 2013-03-12 14:17:00 Java基础学习之Enum
  5. Terry Zhang 发表 2014-04-18 05:08:52 [NIO.2] 编写一个文件拷贝应用
  6. Terry Zhang 发表 2014-04-24 08:14:18 [正则] 边界匹配器
  7. Terry Zhang 发表 2014-05-03 06:33:32 [集合框架] List 接口
  8. 博主 发表 2013-06-30 07:00:00 《Java Web开发实战1200例》实用案例之第四章JSP基础与内置对象
  9. 蔡晓建 发表 2017-11-30 00:00:00 java攻城狮基础-总纲
  10. root 发表 2015-04-26 02:40:02 Java 基础:认识&理解关键字 native 实战篇
  11. root 发表 2015-05-01 08:28:01 Java系列学习(六)-数组
  12. 博主 发表 2013-03-22 16:26:00 Java基础知识之泛型

发表评论