Java数组队列

数组队列:
先说说数组的优缺点,优点是存储和访问速度很快,但缺点是数组每次只能存储固定类型的数据,且长度固定。而数组队列所实现的原理是可以存储不同类型的数据,并且长度是可变的,这样就可以弥补数组的缺点。
数组队列的具体实现:
首先是定义类,该类对数组大小的改变进行封装的类。定义属性,方法。
代码实现:
创建类,声明数组,定义属性,写构造方法。
public class ArrayList<E>{
//声明一个数组
private Object array[];
private int size=0;

//构造方法
public ArrayList(){
array=new Object[0];
}
之后写了添加,移除元素的方法,取指定位置元素的方法和得到队列中的个数
//添加元素
public void add(E st){
//新建一个数组
Object b[]= new Object[size+1];
for(int i=0;i<size;i++){
b[i]=array[i]; //赋值
}
//将添加的元素放到b数组的最后一个位置
b[size]=st;
//个数增加
size++;
//指向新建的数组,要把b数组的首地址再赋给array数组
array=b;


}
//移除元素,index下标
public E remove(int index){
Object temp[]=new Object[size-1];
if(index>0){
for(int i=0;i<index;i++){
temp[i]=array[i];
}
for(int i=index+1;i<size;i++){
temp[i-1]=array[i];
}
}
Object m=array[index];

size--;
array=temp;

return (E)m;
}


//取得队列中指定位置的学生对象
public E get(int index){
E st=(E)array[index];
return (E)st;

}
//得到队列中的元素个数
public int size(){
return size;

}
总体来说,学了数组队列还是方便了很多,之后用了数组队列做了五子棋的悔棋功能
public boolean flag = false; // 实例化数组队列
private ArrayList<chess> al = new ArrayList<chess>();

// 按钮来悔棋
public void actionPerformed(ActionEvent e) {
// 移除最后一颗棋子,所以是size-1(数组下标从零开始),是因为remove方法中输入的是数组的下标,而且移除后返回的是移除的元素
if(al.size()>1){
chess a = al.remove(al.size() - 1);

//把返回的移除的元素通过chess类的方法 取出行和列
int i = a.getRow();
int j = a.getColumn();

array[i][j] = 0;
//当移除一个黑棋,则再下的话还是下黑棋,颜色反过来
flag=!flag;
fr.paint(g);
}
}
我个人感觉用数组队列还是挺方便的。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值