动态数组 02 添加元素

向动态数组中添加元素

过程描述
  • size 作为数据的索引指向新元素要插入的位置,当 size == data.length 时,size 已经指向数组最后一个元素的后面了,即数组的容量已满;
  • size 作为索引,指向新元素将要插入的位置,唯一的位置,保证了数组元素的连续,紧致;
  • 元素的移动从最后一个元素 size - 1,到 index 指向的插入位置的元素,都往后移一格,将 index指向的位置空出来,用于放置要插入的元素;
  • 完成插入后维护一下 size 的状态 size ++
代码实现
// 向所有元素后添加一个新元素
public void addLast(int e){
    add(size, e);
}

// 在所有元素前添加一个新元素
public void addFirst(int e){
    add(0, e);
}

// 在index索引的位置插入一个新元素e
public void add(int index, int e){

    if(size == data.length)
        throw new IllegalArgumentException("Add failed. Array is full.");

    if(index < 0 || index > size)
        throw new IllegalArgumentException("Add failed. Require index >= 0 and index <= size.");

    for(int i = size - 1; i >= index ; i --)
        data[i + 1] = data[i];

    data[index] = e;

    size ++;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Lua 5.1 参考手册 by Roberto Ierusalimschy, Luiz Henrique de F...
    苏黎九歌阅读 14,736评论 0 38
  • 上一章进行了ArrayList源码分析,这一章分析一下另一个重要的List集合LinkedList。 Linked...
    wo883721阅读 3,596评论 0 0
  • HTML 5 HTML5概述 因特网上的信息是以网页的形式展示给用户的,因此网页是网络信息传递的载体。网页文件是用...
    阿啊阿吖丁阅读 9,650评论 0 0
  • ORA-00001: 违反唯一约束条件 (.) 错误说明:当在唯一索引所对应的列上键入重复值时,会触发此异常。 O...
    我想起个好名字阅读 10,792评论 0 9
  • 守时既是守住自己的诚诺,更是一张人际交往中的通行证,给人留下一种对任何事情的重知,守住自己的一片人生天。
    墨明涤生阅读 1,144评论 0 0