Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 是否更改优先级队列对象的字段值?_Java_Priority Queue - Fatal编程技术网

Java 是否更改优先级队列对象的字段值?

Java 是否更改优先级队列对象的字段值?,java,priority-queue,Java,Priority Queue,我正在编写一个银行出纳员模拟程序,使用一个PriorityQueuePQ,其中包含类类型Customer的对象,该类具有priorityNum字段。当客户离开队列时,我需要增加仍然在队列中的客户的优先级 我的问题是:如何通过PQ并增加对象的字段?如果需要对每个类型迭代执行一次排序,可以使用 您可以使用迭代器对队列进行迭代 Iterator<Customer> iterator=queue.iterator(); while(iterator.hasNext()) { Cust

我正在编写一个银行出纳员模拟程序,使用一个PriorityQueuePQ,其中包含类类型Customer的对象,该类具有priorityNum字段。当客户离开队列时,我需要增加仍然在队列中的客户的优先级

我的问题是:如何通过PQ并增加对象的字段?

如果需要对每个类型迭代执行一次排序,可以使用


您可以使用迭代器对队列进行迭代

Iterator<Customer> iterator=queue.iterator();
while(iterator.hasNext())
{
    Customer c=iterator.next();
 }

为什么要增加优先级?当客户出现时,他们会得到一个从1到10的优先级。他们等待服务的时间越长,优先级就越高。我先把优先级最高的客户从队列中拉出来。啊,我明白了,现在有意义了。我不认为为此创建优先级队列是有意义的,因为优先级队列实际上在每次更新元素时都会对队列进行排序。如果要创建LinkedList,可以指定它何时对列表进行排序。注意:LinkedList具有相同的操作,如删除和添加。您可以使用Collections.sort对LinkedList进行排序。通过这种构造,您可以使用简单的for循环并更新所有元素。这将节省您在运行时的时间,并可能使实现变得更容易。没错,使用LinkedList会更容易。不幸的是,我正在创建此程序的参数要求我使用优先级队列。谢谢你的建议!
Iterator<Customer> iterator=queue.iterator();
while(iterator.hasNext())
{
    Customer c=iterator.next();
 }