数据结构(Java)之数组(2)-封装自己的数组并实现插入操作
程序员文章站
2022-03-01 23:20:27
...
使用数组的优点:
快速查找
数组应用场景:
最好应用与"索引有语义"的情况(身份证号不能作为索引,要开辟很大空间)
制作属于自己的数组类
class Array
capacity:
容量-数组空间最多可以装多少元素
size:
数组中实际装多少元素 索引
public class Array {
private int[] data;
private int size;//data数组中有多少个元素
// 数组的容量capacity = data.length
public Array(int capacity){
//传入data数组的容量构造Array
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;
}
}
向数组中添加元素:
1.向数组末尾添加元素
思路:
①判断数组中是否还能容纳新的元素
②data[size]添加元素
③size++
//向数组末尾添加元素
public void addLast(int e){
//判断数组中是否还能容纳新的元素
if (size ==data.length){
throw new IllegalArgumentException("AddLast failed .Array is full");
}
data[size] = e;
size++;
}
2.向指定的位置添加元素(在第index个位置插入一个新元素e)
思路:
①判断数组中是否还能容纳新的元素
②判断传入的index是否合格-index<0 || index <= data.length-1
③将数组中现有的元素从最后一个元素开始依次向后移动一位
④数组的index位置赋值为e
⑤size ++
//在第index个位置插入一个新元素e
public void add(int index ,int e ){
if (size ==data.length){
throw new IllegalArgumentException("AddLast failed .Array is full");
}
if (index <0 || index >size){
throw new IllegalArgumentException("AddLast failed .");
}
for (int i = size-1; i >= index; i--) {
data[i+1] = data[i];
}
data[index] = e;
size++;
}
代码复用,向数组末尾添加元素,就可以写的简单一点了
public void addLast(int e){
add(size,e);
}
3.在所有数组前添加一个新元素
public void addFirst(int e ){
add(0,e);
}
下一篇: <数据结构>顺序表的插入、删除操作