封装数组之添加元素
Posted wfaceboss
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了封装数组之添加元素相关的知识,希望对你有一定的参考价值。
在上一小节中,我们对数组进行了一个基本的封装,该小节中,我们在上一次基础上,新增往数组添加元素的方法:
1.向所有元素后添加一个元素
思路:
(1)先判断当前数组容量是否已满,未满则转入(2),否则抛出异常
(2)在元素下标为size的位置插入新元素
(3)维护我们的size值
//向所有元素后添加元素 public void addList(int e) { if (size == data.length) throw new IllegalArgumentException("数组已满");
data[size] = e;
size++; }
2.在指定index位置插入一个新元素
思路:
(1)先判断当前数组容量是否已满,未满则转入(2),否则抛出异常
(2)判断当前需要插入值的位置是否合理,合理则转入(3),否则抛出位置不合法异常
(3)将index之后的元素依次往后移动一位,然后将新元素插入到index位置
(4)维护我们的size值
//在第index个位置插入一个新元素 public void add(int index, int e) { //(1)先判断当前数组容量是否已满,未满则转入(2),否则抛出异常 if (size == data.length) throw new IllegalArgumentException("数组已满"); //(2)判断当前需要插入值的位置是否合理,合理则转入(3),否则抛出位置不合法异常 if (index < 0 || index > size) throw new IllegalArgumentException("您选择的位置不合法"); //将index位置之后的元素往后依次移动一位 for (int i = size - 1; i >= index; i--) { //(3)将index之后的元素依次往后移动一位,然后将新元素插入到index位置 data[i + 1] = data[i]; data[index] = e; //(4)维护size值 size++; } }
通过对在指定index位置插入一个新元素方法的编写,此时我们可以很轻松的编写出在所有元素之前添加一个新元素,
3.在所有元素之前添加一个新元素
//在所有元素之前添加一个新元素 public void addFirst(int e) { add(0, e);//0表示第一个位置 }
我们还可以对在本节刚开始编写的第一个方法进行改写,改写如下:
//向所有元素后添加元素 public void addList(int e) { add(size, e);//size表示此时的最后一个元素 }
到此我们对如何在数组中添加一个元素有了基本的认识,在下一节中我们就如何在数组中查询元素和修改元素进行学习。
若你感兴趣,关注我,我们一起学习~~~~
此小节代码:
/** * 1.从封装int类型数组开始 */ public class Array { //使用private 的目的是防止用户从外界修改,造成数据不一致 private int[] data; private int size;//数组中元素个数 //构造函数,传入数组的容量capacity构造Array函数 public Array(int capacity) { data = new int[capacity]; size = 0; } //无参构造函数,默认数组的容量capacity=10 public Array() { this(10); } //获取数组中元素个数 public int getSize() { return size; } //获取数组的容量 public int getCapacity() { return data.length; } //获取数据是否为空 public boolean iEmpty() { return size == 0; } //向所有元素后添加元素 public void addList(int e) { add(size, e);//size表示此时的最后一个元素 } //在所有元素之前添加一个新元素 public void addFirst(int e) { add(0, e);//0表示第一个位置 } //在第index个位置插入一个新元素 public void add(int index, int e) { //(1)先判断当前数组容量是否已满,未满则转入(2),否则抛出异常 if (size == data.length) throw new IllegalArgumentException("数组已满"); //(2)判断当前需要插入值的位置是否合理,合理则转入(3),否则抛出位置不合法异常 if (index < 0 || index > size) throw new IllegalArgumentException("您选择的位置不合法"); //将index位置之后的元素往后依次移动一位 for (int i = size - 1; i >= index; i--) { //(3)将index之后的元素依次往后移动一位,然后将新元素插入到index位置 data[i + 1] = data[i]; data[index] = e; //(4)维护size值 size++; } } }
以上是关于封装数组之添加元素的主要内容,如果未能解决你的问题,请参考以下文章