我已经创建了一个优先级队列,并在队列中填充了项目并使用此队列作为基础,我遍历它并发现项目的优先级。根据使用某些逻辑将项目移动到子队列的优先级。如何在JAVA中创建高优先级有界子队列和低优先级有界子队列
在我的主程序我创建界子队列使用静态报表,我想要做的就是创建一个使用我的父队列构造函数的构造函数的有界子队列什么:public HiLoPriorityQueue(int high_capacity, int low_capacity)
构造应该创建初始容量高优先级子队列中有界high_capacity和一个容量较低的低优先级有界子队列low_capacity
可以通过使用父队列上应用的相同添加和删除方法从父队列创建子队列?
我的主要程序:
public class PQTest {
public static void main(String[] args) {
HiLoPriorityQueue<Customer> prq = new HiLoPriorityQueue<Customer>(10);
Customer c1 = new Customer("Rock",999);
Customer c2 = new Customer("Brock",1);
Customer c3 = new Customer("UnderTaker",1000);
HiLoPriorityQueue<Customer> hq = new HiLoPriorityQueue<Customer>(5);
HiLoPriorityQueue<Customer> lq = new HiLoPriorityQueue<Customer>(3);
// insert values in the queue
prq.add(c1);
prq.add(c2);
prq.add(c3);
// create iterator from the queue
Iterator it = prq.iterator();
System.out.println ("Priority queue values are: ");
while (it.hasNext()){
Customer c = (Customer) it.next();
System.out.println ("Value: "+ c);
System.out.println("Priority is :: "+c.getPriority());
if(c.getPriority() == 1){
if(hq.size() < 5)
hq.add(c);
else{
if(hq.size() < 5) lq.add(c);
else{
lq.remove();
lq.add(c);
}
}
}
else{
if(lq.size() < 3) lq.add(c);
}
}
}
}
队列创建类:
“可以子队列从父队列通过使用施加在父队列相同的添加和删除方法创建??” - 这似乎很直接。你有没有试过,你是否面临任何问题? – 6ton
public HiLoPriorityQueue(int high_capacity,int low_capacity){ \t \t helements = new Object [high_capacity]; \t \t lelements = new Object [low_capacity]; \t \t hq = new HiLoPriorityQueue(high_capacity); \t \t lq = new HiLoPriorityQueue (low_capacity); \t \t count = 0; \t \t head = 0; \t \t tail = 0; \t \t \t}这是我创建的构造函数,当我在我的逻辑hq.add(C)表示,母公司队列被添加了,但没有子队列:( –
Dex
我看到了 - 但你没有代码在那里创建2个子队列 – 6ton