【发布时间】:2021-11-27 01:53:18
【问题描述】:
我需要一些帮助。我正在聊天,大约每 10 秒读取一个 XML(是的,数据库是 XML,恭喜我的老师,我们无法更改数据库格式 xDD)
等等,我现在的问题是创建函数,替换消息很容易,如果 xml 消息超过 RAM 一个,那么我清除 ram 然后再次添加所有消息,但我不能这样做用户,我不知道为什么,但我认为 equals 或某些东西坏了(?我不知道请帮助我,我的大脑快要坏了!
if (temp.getList().size() > roomList.getList().size()) {
for (Room room_xml : temp.getList()) {
if (roomList.addRoom(room_xml)) {
System.out.println("A room was loaded");
}
}
} else {
for (Room room_xml : temp.getList()) {
for (Room room_ram : roomList.getList()) {
if (room_ram.equals(room_xml)) {
if (room_ram.getMessageList().size() < room_xml.getMessageList().size()) {
room_ram.getMessageList().clear();
room_ram.getMessageList().addAll(room_xml.getMessageList());
}
Set<User> us_xml = room_xml.getUserList();
for(User u_xml: us_xml){
for(User u_ram: room_ram.getUserList()){
if(room_ram.getUserList().add(u_xml)){
System.out.println("User was added(?");
}
}
}
/*for (User u_xml : room_xml.getUserList()) {
if(room_ram.getUserList().add(u_xml)){
System.out.println("User was added(?");
}else{
break;
}
}*/
如果您需要更多信息,我会在 github 上分享我的项目:https://github.com/Varo95/ChaTerra 此代码在 RoomListDAO.java 上 PD:我放了 print 但我使用 javafx xd
我有另一个想法,比如在 roomdao 上声明 actual_user 并检查 xml 是否在列表中以添加一个....但似乎不起作用:(
【问题讨论】:
-
听起来更像是您想要某种差异引擎/工作流程,您可以在其中将“数据库”与“内存”进行比较并找出差异,然后根据需要应用更改