gpt4 book ai didi

java - 使用 arrayList 更新文件中的记录

转载 作者:行者123 更新时间:2023-12-01 12:58:18 24 4
gpt4 key购买 nike

我有一个正在玩游戏的用户列表。他们有一些统计数据,我将其存储在 arrayList newList 中。游戏退出后,我将 arrayList 值存储在 .dat 文件中。现在的问题是,如果用户已存在于我的 .dat 文件中,我将需要更新该用户的记录。我想在这里使用 3 个 arrayList。

1. ArrayList newList will get the records from the file.
2. ArrayList oldList will then store the replica of newList.
3. Game ends. Compare arrayList newList and oldList, and store the updated list in ArrayList users.
4. Store the ArrayList users in a file.

void compare()
{
Player obj1=null,obj2=null;
int newSize = newList.size(); //stores the new records of the users.
int oldSize = oldList.size(); //stores the old records of the users.
for(int i=0;i<oldSize;i++)
{
for(int j=0;j<newSize;j++)
{
obj1=newList.get(i);
obj2=oldList.get(j);
if(obj1==obj2)
{
users.add(obj1);
}
else
{
users.add(obj2);
}
}

}
}

//store the records of users in the filename.dat

这个逻辑行得通吗?

最佳答案

使用纯文件存储“ session 数据”可能不是最好的方法,您可能会发现与并发、I/O 阻塞等相关的问题。

在你的情况下,我会使用一些嵌入式数据库,例如 SQLiteH2 ,我在类似的场景中使用过 H2,效果非常好。

但是,如果您想(出于任何原因)自己将数据存储在文件中,那么我建议使用 Map 而不是 List,使用用户名作为键或任何其他唯一字段来识别用户,这样您就可以轻松地获取用户是否存在。

另一方面,你的代码没有太大意义,也许我不明白你的意思,我会使用类似于这样的代码:

  List<Player> users = new ArrayList<Player>(oldList);

for(String newUser: newList)
{
if (!users.contains(newUser)) {
users.add(newUser);
}
}

以前的代码,获取所有oldUsers并添加旧列表中未包含的新用户,¿这是您需要的吗?

关于java - 使用 arrayList 更新文件中的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23720363/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com