队列总结

数组是一段连续的存储空间,数组在创建时大小即被定义,不可更改。如果数组的大小可以随意更改伸缩

,那么就可以有效避免空间浪费或者数据溢出的问题,基于这一愿望,将数组封装成一个类的队列类产生

了。在队列中,数组是基本属性,添加/删除一个数组元素,寻找/遍历数组元素,都作为方法定义在类中

。这体现了java语言的一大特性:封装性。
代码如下:
public class DefinedList {
//定义一个Object数组
Object []list=new Object[0];
//添加一个元素的方法
public void add(Object obj){
//创建一个长度为list.length+1的数组
Object []newlist=new Object[list.length+1];
//将原数组中的元素赋给新数组
for(int i=0;i<list.length;i++){
newlist[i]=list[i];
}
newlist[list.length]=obj;
list=newlist;
}
//删除指定索引index的方法
public void delete(int index){
//创建一个长度为list.length-1的数组
Object []newlist=new Object[list.length-1];
//将原数组的元素赋给新数组
for(int i=0;i<index;i++){
newlist[i]=list[i];
}
for(int i=index+1;i<list.length;i++){
newlist[i-1]=list[i];
list=newlist;
}
}
//寻找指定索引的数组元素的方法
public Object search(int index){
return list[index];
}


}
以上代码中数组元素被声明为Object类型,这样DefinedList类即可实现对不同元素类型的数组的封装。

由于会将其他类自动转型为Object类,所以再需要调用该类中的元素或方法时须对其强制转型,代码如下



public class Student {
String name;
float score;
public void setName(String name){
this.name=name;
}
public String getName(){
return name;
}
public void setScore(float score){
this.score=score;
}
public float getScore(){
return score;
}
public void study(){
score++;
System.out.println(name+"is studying,his score is "+score);


}
}
public class ManagerList {

/**
* 主函数
*/
public static void main(String[] args) {
// 创建一个DefinedList对象
DefinedList fun=new DefinedList();
//创建一个随机类对象
Random rand=new Random();
for(int i=0;i<10;i++){
int c=rand.nextInt(10);
Student stu=new Student();
stu.setName("学生"+c);
fun.add(stu);
}
for(int i=0;i<fun.size();i++){
Student stu=(Student) fun.search(i);
stu.study();
}

}

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值