ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

004-猫狗队列

2019-04-24 11:49:34  阅读:216  来源: 互联网

标签:return catQ 队列 util pet 004 Pet public


package com.my.util;

public class Pet {
	private String type;
	public Pet(String type) {
		this.type = type;
	}
	public String getPetType() {
		return this.type;
	}
}

package com.my.util;

public class Dog extends Pet {
	public Dog() {
		super("dog");
	}
}

package com.my.util;

public class Cat extends Pet {
	public Cat() {
		super("cat");
	}
}

package com.my.util;

public class PetEnterQueue {
	private Pet pet;
	private long count;
	public PetEnterQueue(Pet pet, long count) {
		this.pet = pet;
		this.count = count;
	}
	public Pet getPet() {
		return this.pet;
	}
	public long getCount() {
		return this.count;
	}
	public String getEnterPetType() {
		return this.pet.getPetType();
	}
}

package com.my.suanfa;

import java.util.LinkedList;
import java.util.Queue;

import com.my.util.Cat;
import com.my.util.Dog;
import com.my.util.Pet;
import com.my.util.PetEnterQueue;

public class DogCatQueue {
	//声明变量
	private Queue<PetEnterQueue> catQ;
	private Queue<PetEnterQueue> dogQ;
	private long count;
	//给变量赋初值
	public DogCatQueue() {
		this.catQ = new LinkedList<PetEnterQueue>();
		this.dogQ = new LinkedList<PetEnterQueue>();
		this.count = 0;
	}
	//猫狗入队列
	public void add(Pet pet) {
		if(pet.getPetType().equals("cat")) {
			catQ.add(new PetEnterQueue(pet, count++));
		} else if(pet.getPetType().equals("dog")) {
			dogQ.add(new PetEnterQueue(pet, count++));
		} else {
			throw new RuntimeException("err, no dog or cat!");
		}
	}
	//猫狗出队列
	public Pet pollAll() {
		if(!isCatQueueEmpty() && !isDogQueueEmpty()) {
			if(catQ.peek().getCount() < dogQ.peek().getCount()) {
				return catQ.poll().getPet();
			} else {
				return dogQ.poll().getPet();
			}
		} else if(!isCatQueueEmpty()) {
			return catQ.poll().getPet();
		} else if(!isDogQueueEmpty()) {
			return dogQ.poll().getPet();
		} else {
			throw new RuntimeException("err,your queue is empty!");
		}
		
	}
	//猫出队列
	public Cat pollCat() {
		if(!isCatQueueEmpty()) {
			return (Cat)catQ.poll().getPet();
		} else {
			throw new RuntimeException("your cat queue is empty!");
		}
	}
	//狗出队列
	public Dog pollDog() {
		if(!isDogQueueEmpty()) {
			return (Dog)dogQ.poll().getPet();
		} else {
			throw new RuntimeException("your dog queue is empty!");
		}
	}
	//判断猫狗队列是否为空
	public boolean isEmpty() {
		return catQ.isEmpty() && dogQ.isEmpty();
	}
	//判断猫队列是否为空
	public boolean isCatQueueEmpty() {
		return catQ.isEmpty();
	}
	//判断狗队列是否为空
	public boolean isDogQueueEmpty() {
		return dogQ.isEmpty();
	}
}

标签:return,catQ,队列,util,pet,004,Pet,public
来源: https://blog.csdn.net/xiongmengyao/article/details/89489530

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有