向动态数组中添加元素
过程描述
-
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 ++;
}
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。