Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/310.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 从SortedSet中移除最后一个元素_Java_Jsp_Jakarta Ee_Set - Fatal编程技术网

Java 从SortedSet中移除最后一个元素

Java 从SortedSet中移除最后一个元素,java,jsp,jakarta-ee,set,Java,Jsp,Jakarta Ee,Set,在运行remove方法之前和之后打印roomBookings集时,该集包含完全相同的元素。因此,bb.getBooking().getRoomBookings().remove(r)不起作用。我使用java.util.SortedSet实现为java.util.TreeSet。有什么建议解释为什么这不起作用吗 for(RoomBookingDTO r : bb.getBooking().getRoomBookings()) { if(r.getLocalId() == b

在运行remove方法之前和之后打印
roomBookings
集时,该集包含完全相同的元素。因此,
bb.getBooking().getRoomBookings().remove(r)不起作用。我使用
java.util.SortedSet
实现为
java.util.TreeSet
。有什么建议解释为什么这不起作用吗

    for(RoomBookingDTO r : bb.getBooking().getRoomBookings()) {
        if(r.getLocalId() == bb.getCurrentRoomNumber()) {
            System.out.println("kom hit");
            bb.getBooking().getRoomBookings().remove(r);
        }
    }

我很怀疑您将当前房间号与
getRoomBookings().size()
和房间预订ID进行比较。
RoomBookingDTO
是否正确执行
equals()
hashCode()
?这只是一个小问题。它用于在特定状态下处理用户单击退格。这并不重要。但是
RoomBookingDTO
是否正确地实现
equals()
hashCode()
?我在最后添加的代码可以正常工作。我猜这回答了你的问题,定义为“不起作用”。我猜你得到了一个ConcurrentModificationException。并显示您的代码,而不是让我们猜测。RoomBookingDTO的compareTo()方法很重要。
 RoomBookingDTO roomBooking = createRoomBooking(request);

    System.out.println("Before: " + bb.getBooking().getRoomBookings());
    bb.getBooking().getRoomBookings().add(roomBooking);
    System.out.println("Add: " + bb.getBooking().getRoomBookings());
    bb.getBooking().getRoomBookings().remove(roomBooking);
    System.out.println("After: " + bb.getBooking().getRoomBookings());