【问题标题】:How i can update this Setlist of users?我如何更新这个用户列表?
【发布时间】: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 是否在列表中以添加一个....但似乎不起作用:(

【问题讨论】:

  • 听起来更像是您想要某种差异引擎/工作流程,您可以在其中将“数据库”与“内存”进行比较并找出差异,然后根据需要应用更改

标签: java loops set


【解决方案1】:

我已经解决了,谢谢,我已经这样做了,而且似乎可以工作:

RoomList temp = load();
                    if (temp.getList().size() > roomList.getList().size()) {
                        for (Room room_xml : temp.getList()) {
                            if (roomList.addRoom(room_xml)) {
                                System.out.println("Room was loaded on RAM");
                            }
                        }
                    } 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());
                                    }
                                    room_ram.getUserList().clear();
                                    room_ram.getUserList().addAll(room_xml.getUserList());
                                }
                                break;
                            }
                        }
                    }
                    saveFile(roomList);

当用户离开房间或加入时也保存它,但我需要做一些小修复哈哈哈哈现在我对自己感觉很好

【讨论】:

    猜你喜欢
    • 2016-01-13
    • 2011-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-18
    • 2021-03-12
    • 2014-09-11
    • 1970-01-01
    相关资源
    最近更新 更多