向数组中添加元素

向数组中添加元素

1、数组末尾添加元素

(1)向数组末尾添加元素模型图

(2)向数组末尾添加元素代码

public class Array {
   
// 定义数组变量,data.length表示数组容量capacity
   
private int[] data;
   
// 定义数组中存放数据大小
   
private int size;

   
// 有参构造方法,传入数组的容量capacity构造动态数组
   
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 isEmpty(){
       
return size == 0;
   
}

   
// 在数组末尾添加元素
    
public void addLast(int e){
       
if(size == data.length)
           
throw new IllegalArgumentException("AddLast failed.Array is full.");
       
data[size] = e;
       
size ++;
   
}
}

2、数组指定位置添加元素

(1)向数组指定位置添加元素模型图

(2)向数组指定位置添加元素代码

public class Array {

    // 定义数组变量,data.length表示数组容量capacity

    private int[] data;

    // 定义数组中存放数据大小

    private int size;



    // 有参构造方法,传入数组的容量capacity构造动态数组

    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 isEmpty() {

        return size == 0;

    }



    // 在数组末尾添加元素

    public void addLast(int e) {

        if (size == data.length)

            throw new IllegalArgumentException("AddLast failed.Array is full.");

        data[size] = e;

        size++;

    }



    // 数组指定位置添加元素

    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++;

    }

}

(3)向数组末尾指定位置添加元素代码改造

public class Array {

    // 定义数组变量,data.length表示数组容量capacity

    private int[] data;

    // 定义数组中存放数据大小

    private int size;



    // 有参构造方法,传入数组的容量capacity构造动态数组

    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 isEmpty() {

        return size == 0;

    }



/*    // 在数组末尾添加元素

    public void addLast(int e) {

        if (size == data.length)

            throw new IllegalArgumentException("AddLast failed.Array is full.");

        data[size] = e;

        size++;

    }*/



    // 在数组末尾添加元素(复用add方法)

    public void addLast(int e) {

        add(size, e);

    }



    // 在数组头部添加元素(复用add方法)

    public void addFirst(int e) {

        add(0, 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++;

    }

}

 

如果感兴趣的童鞋,可以观看我下一篇博客:数组中查询元素和修改元素

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值