- 适配器模式-----Adapter
public abstract class AbstractBox implements Box{
public boolean add(element);
public void add(int index,int element){
//具体化
//抛出自定义异常
}
public void addAll(){
//具体化
//抛出自定义异常
}
public int get(index);
public int remove(index);
public int size();
public void rangeCheck(int index){
if(index<0 || index>=size){
自定义的异常
}
}
}
public class ArrayBox extends AbstractBox{
//属性用来存储真实数据elementDate[]
//属性用来记录有效元素个数 int size;
public boolean add(element){
//1.确保数组内部容量
//2.将element元素存入数组的最后位置 size++
//3.返回一个true告知用户添加成功
}
public int get(index){
//1.检测index范围是否合法
//2.将index位置的元素从数组中取出 并返回
}
public int remove(index){
//1.检测index范围是否合法
//2.获取index位置上的元素----保留起来
//3.从index开始至size-1位置 将后面元素逐一前移覆盖
//4.最后有效的那个元素删掉 --size
//5.保留起来的旧元素返回
}
public int size(){
//return this.size;
}
}
//这是一个自定义的类型----节点
public class Node{
Node prev;
int item;
Node next;
}
public class LinkedBox extends AbstractBox{
属性存储首节点first
属性存储尾节点last
属性存储有效元素的个数size
public boolean add(element){
//找一个人 将element添加在链表末尾
//告知添加成功
}
public int get(index){
//检测index是否合法
//找一个人 帮我们找到index位置的那个Node对象
//将node中item数据返回
}
public int remove(index){
//检测index是否合法
//找一个人 帮我们找到index位置的那个Node对象
//找一个人 帮我们将node对象删除 将删掉node对象中的旧数据返回
//将旧数据返回
}
public int size(){
返回有效元素的个数
}
}