java - 使用迭代器将元素交换到链表的顶部

标签 java time linked-list iterator

目前我正在开发医院排队系统。我在耐心构造函数中有一个很长的称为 Time 的对象。时间设置为system.milliseconds。下面的方法是线程的一部分。它包含一个迭代器,用于获取患者的时间并将其与当前系统时间进行比较。一旦患者的时间达到 2 分钟,我想将已达到 2 分钟的元素移动到队列的顶部。此后每个达到 2 分钟的元素都应移至队列顶部并排序。链接列表根据患者的严重程度自动排序,但是如果患者等待时间太长,他们将被移到前面。因此间隔为 2 分钟。

ListIterator<Patient> checktime = MainPatientQueue.patientslist.listIterator();

            while(checktime.hasNext()){

                Patient P = checktime.next();

                long max = 120000;
                long start = (P.getTime());



                long end = System.currentTimeMillis();

                //System.out.println(end-start);





                if(end-start>max){



                    MainPatientQueue.patientslist.remove(P);

                    MainPatientQueue.patientslist.add(0, P);




                }



            }

总的来说,我想知道是否有一种方法可以在迭代器中使用来移动元素?目前,每次尝试移动元素时,我都会抛出并发修改异常。

谢谢肖先生。我已经更新了代码,它似乎可以工作。但是,当它移动特定元素并返回到患者时 P = checktime.next();它抛出异常。

最佳答案

假设patientslist是一个ArrayList或类似的,您可以通过checktime.remove()删除Patient P并通过patientslist.add(0, P)将其添加到列表的开头。

关于java - 使用迭代器将元素交换到链表的顶部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29794980/

相关文章:

java - 动态改变imageView中的位图,android

python - 从模块导入功能需要很长时间

java - 使用递归java从链表中删除节点

c++ - 尝试打开 .txt 文件时程序崩溃

java - JPA数据库中的外键,项目中的返回对象

Java Android 线程,同一个线程工作两次

java - 从 Java 桌面应用程序进行 Mac OS X native 打印

C++ 当前时间 -> 两位数

c - 尝试在 struct tm 中设置值

C++:链表、字符串指针