【Java】动物收容所
来源:互联网 发布:soma聊天软件好用吗 编辑:程序博客网 时间:2024/04/30 02:56
有家动物收容所只收容狗与猫,且严格遵守“先进先出”原则。在收养该收容所的动物时,收养人只能收养进入收容所时间最长的动物,或者,挑选猫或狗中收养时间最长的。
请创建适合这个系统的数据结构,实现各种操作方法,比如enqueue,dequeueAny, dequeDog, dequeueCat等,允许使用java内置的LinkedList数据结构
不能使用Queue类,Queue是接口,实例化接口要实例化接口的每个方法
分别实现两个queue存放dog和 cat,并用一个变量记录下每个动物进入队列的时间,需要收养时,则将时间最长的出队
import java.util.LinkedList;public class shourongsuo {public abstract class Animal {//kinda timestamp to mark how long did the animal benn in the zooint order;protected String name;public Animal(String n) {name = n;}public void setOrder(int ord) {order = ord;}public int getOrder() {return order;}public boolean isOlderThan(Animal a) {return this.order < a.getOrder();}}public class Dog extends Animal {public Dog(String n) {super(n);}}public class Cat extends Animal {public Cat(String n) {super(n);}}public class AnimalQueue {LinkedList<Dog> dogs = new LinkedList<Dog> ();LinkedList<Cat> cats = new LinkedList<Cat> ();private int order = 0; //time stamppublic void enqueue(Animal a) {a.setOrder(order);order++;if ( a instanceof Dog) dogs.addLast((Dog)a);else if (a instanceof Cat) cats.addLast((Cat)a);}public Animal dequeueAny() {if (dogs.size() == 0) {return dequeueCats();}else if (cats.size() == 0) {return dequeueDogs();}Dog dog = dogs.peek();Cat cat = cats.peek();if ( dog.isOlderThan(cat) ) {return dequeueDogs();}else {return dequeueCats();}}public Dog dequeueDogs() {return dogs.poll();}public Cat dequeueCats() {return cats.poll();}}}
0 0
- 【Java】动物收容所
- 程序员面试经典--动物收容所
- 9.3栈和队列(九)——动物收容所,先进先出
- Java 动物声音模拟器
- Java-动物声音
- Java 动物声音“模拟器”
- java动物模拟器
- java动物模拟器接口
- java解惑之动物庄园
- 动物
- 动物
- 动物
- 猫狗收容所
- 牛客网 | 猫狗收容所
- 猫狗收容所
- 猫狗收容所
- 猫狗收容所
- 猫狗收容所
- 通过maven构建一个java项目
- 实现ssh免密码登录
- 经典算法总结之AdaBoost与随机森林
- ProgressDialog的转动卡卡的问题
- Button添加图片和文字
- 【Java】动物收容所
- 发现通用流感疫苗的新路径
- Properties类文件的的操作
- iOS 中的 NSTimer
- caffe在windows编译工程及运行mnist数据集测试
- 远程升级学习
- 决明子保健枕头好吗,有什么用?
- LeetCode——3Sum & 3Sum Closest
- jQuery $(document).ready() 与JavaScript window.onload的区别