猫狗队列。
题目
宠物、狗和猫的类如下:
1 | public class Pet { |
实现一种狗猫队列的结构,要求如下:
- 用户可以调用
add
方法将cat类或dog类的实例放入队列中; - 用户可以调用
pollAll
方法,将队列中所有的实例按照进队列的先后顺序依次弹出; - 用户可以调用
pollDog
方法,将队列中dog类的实例按照进队列的先后顺序依次弹出; - 用户可以调用
pollCat
方法,将队列中cat类的实例按照进队列的先后顺序依次弹出; - 用户可以调用
isEmpty
方法,检查队列中是否还有dog或cat的实例; - 用户可以调用
isDogEmpty
方法,检查队列中是否有dog类的实例; - 用户可以调用
isCatEmpty
方法,检查队列中是否有cat类的实例。
核心思想
设计一个pet的包装类型,包装类型中加上 count 表示这个实例对象是第几个被添加的,这样可以在执行 pollAll()
的时候根据 count 来决定返回哪一个对象。
设计两个队列,两个队列中放的都是包装类型的对象。
push的时候把要入队列的对象先包装起来,再放入队列中。
代码
DogCatQueue 类
1 | public class DogCatQueue { |
PetBox 类
1 | public class PetBox { |
完整测试代码
完整代码中,为了测试方便,把上边的类都改为了静态内部类。
1 | import java.util.LinkedList; |