写一个Command类,它包含一个String域和一个显示该String域的方法operation(),写第二个类,它具有一个使用Command对象来填充一个Queue的方法。……

本文探讨如何创建一个Command类,其包含一个String域和operation()方法。其次,介绍了一个类用于填充一个Queue<Command>,并解决在第三个类(UseQueue)中操作Queue时出现的ConcurrentModificationException问题。错误在于尝试使用Iterator同时修改队列,而实际上只需调用Queue.remove().operation()即可安全地移除并显示队列头部的Command对象的String域值。
摘要由CSDN通过智能技术生成
代码如下:
package p424;
import java.util.LinkedList;
import java.util.Queue;

public class UseCommand {
	private Queue<Command> queue =new LinkedList<Command>();
	public Command addQueue(Command cmd){
		queue.offer(cmd);
		return cmd;
	}
	class UseQueue{//因为要使用UseCommand的queue队列,这里我将第三个类定义为UseCommand的内部类(这里不应该使用继承,因为并不存在继承关系)
		void useQueue(){
			while(queue.peek()!=null){
				queue.remove().operation();
			}
		}
	}
	static class Test{
		public static void main(String[] args) {
			Command cmd =new Command("you are a sb");
			Command cmd2=new Command("you are a pig");
			Command cmd3 = new Command("你是傻逼");
			Command cmd4 =new Command("你是猪");
			UseCommand useCmd =new UseCommand();
			useCmd.addQueue(cmd);
			useCmd.addQueue(cmd2);
			useCmd.addQueue(cmd3);
			useCmd.addQueue(cmd4);
			UseQueue useQue= useCmd.new UseQueue();
			useQue.useQueue();	
		}
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值