java自定义队列

//泛型其实就可以理解为一个模板,至于我们制作模具是倒进去的是什么有我们自己决定。


public class MyList[color=red]<E>[/color] {
//这是一个标志

创建一个Object数组
private Object[] array = new Object[0];

//队列的增加操作
public void add(E e){
//创建一个新Object数组用做交换的模具
Object[] new_array = new Object[array.length+1];

//将原数组中的元素拷贝过来
for (int i=0;i<array.length;i++){
new_array[i] = array[i];
}
//将新元素添加到队列的最末尾
new_array[new_array.length-1] = e;
//指针重新指向
array = new_array;


}

//获得队列的长度
public int getlength(){
return array.length;
}

//队列的修改
public void modify(int index,E e){
array[index] = e;
}

//队列的查找
public E get(int index){
//注意要进行强制类型转换
return (E)(array[index]);
}



//删除操作
//[color=red]要重点考虑数组存放数据的连续性[/color]

public void delete(int index){
Object[] new_array = new Object[array.length-1];

//将修改值之前的类容复制过去
for (int i=0;i<index;i++){
new_array[i] = array[i];
}
//将删除的元素值之后的部分拷贝过去
for (int i=index+1;i<array.length;i++){
new_array[i-1] = array[i];
}

//重新指向
array = new_array;
}

//插入新元素
public void insert(int index,E e){
//新建一个交换数组
Object[] new_array = new Object[array.length+1];

//将插入之前的部分拷贝到元素的数组当中
for (int i=0;i<index;i++){
new_array[i] = array[i];
}
//插入新的元素
new_array[index] = e;
//将老数组后面的元素拷过去
[color=red]for (int i=index;i<array.length;i++){
new_array[i+1] = array[i];
}[/color] array = new_array;
}
//查询数组当中已经存放的元素个数
public int real_length(){
int location = 0 ;
for (int i=0;i<array.length;i++){
if (array[i] == null){
location = i;
break;
}
}
return location;
}


}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值