【Java】动物收容所
最新推荐文章于 2022-06-14 11:05:13 发布

michellechouu 于 2015-07-13 16:01:47 发布
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
有家动物收容所只收容狗与猫,且严格遵守“先进先出”原则。在收养该收容所的动物时,收养人只能收养进入收容所时间最长的动物,或者,挑选猫或狗中收养时间最长的。
请创建适合这个系统的数据结构,实现各种操作方法,比如enqueue,dequeueAny, dequeDog, dequeueCat等,允许使用java内置的LinkedList数据结构
不能使用Queue类,Queue是接口,实例化接口要实例化接口的每个方法
分别实现两个queue存放dog和 cat,并用一个变量记录下每个动物进入队列的时间,需要收养时,则将时间最长的出队
import java.util.LinkedList;
public class shourongsuo {
public abstract class Animal {
int 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;
public 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();
}
}
}
相关知识
面试题 03.06. 动物收容所
基于Java的宠物动物管理系统实现
动物收容所模拟器
动物收容所2:序幕
宠爱有家·动物收容所收容所领养条件
基于Java Web的宠物管理系统
动物收容所
动物收容所游戏下载
动物收容所心理健康干预.docx
动物收容所模拟器游戏下载
原文链接: 【Java】动物收容所 https://m.mcbbbk.com/newsview732680.html
| 上一篇: 领养宠物收容所的狗狗要钱吗,从宠... | 下一篇: 「广州 宠物医生/医生助理招聘」 |



