首页 > 分享 > 【Java】动物收容所

【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

所属分类:萌宠日常
上一篇: 领养宠物收容所的狗狗要钱吗,从宠
下一篇: 「广州 宠物医生/医生助理招聘」