gpt4 book ai didi

java - 我应该如何使用Hashmap来存储对象?

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

我正在开发一个插件,它将在操作期间使用的 HashMap 中存储部落(部落类对象)。 hasmap 将存储在一个文件中(将 hashmap 序列化为一个整体是理想的,但我不确定这是否可能)以供稍后重新加载。

我应该如何保存对象?我可以序列化整个 HashMap 吗?提前致谢;我是 HashMap 新手:P

最佳答案

HashMap 本身实现了可序列化,因此如果键和值都是可序列化的,则可以序列化整个 HashMap。首先您必须决定使用什么键。键可以是任何对象,但必须同时实现 equals(..) 和 hashCode() 方法,以便在 HashMap 中识别该键。

在您的情况下,您可能可以使用部落名称作为表示为字符串对象的键。此外,Clan 应该实现可序列化(或可外部化)。

public class Clan 
implements Serializable
{
...
}

按如下方式创建 HashMap(使用 Java 1.5 或更高版本):

Map<String, Clan> clans = new HashMap<String, Clan>();

将其序列化为文件,如下所示:

FileOutputStream fos = new FileOutputStream("t.tmp");
ObjectOutputStream oos = new ObjectOutputStream(fos);

oos.writeObject(clans);

oos.close();

使用 ObjectInputStream 对其进行反序列化。 Java 序列化过程非常慢,因此如果速度是一个问题,您应该检查替代序列化技术。 Kryo 是一个非常简单且快速的序列化库 ( https://code.google.com/p/kryo/ )。

关于java - 我应该如何使用Hashmap来存储对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15752764/

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