gpt4 book ai didi

java - 如果我有一个要从多个类访问的对象列表,我应该在哪里存储这些对象?

转载 作者:行者123 更新时间:2023-11-30 08:47:49 25 4
gpt4 key购买 nike

我有几个类来存储数据(DataClassA、DataClassB 等)和每个类中的许多对象(objectA1、objectA2、objectB1、objectB2、objectB3 等)。现在每个对象都有一个 ID 号,并存储在适当的哈希表(hashtableA、hashtableB 等)中。

我想从其他几个更程序化的类访问这些对象。我的问题是我应该将哈希表放在哪个类中。我不希望从文件中重复读取它们。

我在表达这个问题时遇到了问题,所以如果有任何不清楚的地方请提问。感谢您的任何反馈或回答。

最佳答案

I have several classes to store data (DataClassA, DataClassB, etc) and many objects in each class (objectA1, objectA2, objectB1, objectB2, objectB3, etc).

如果你只有类来存储数据,而你的应用程序没有数据库(建议有一个),。值得注意的是,如果您的应用程序在功能方面不断增加,那么在未来的某个时候,您将无法管理 Object 中的所有数据。

I want to access these objects from several other, more procedural, classes

好的如果多个类同时访问它或尝试修改它怎么办?在多线程的情况下,您最好使用线程安全选项。是的!您已经使用了 Hashtable,但这可能会影响性能 ConcurrentHashMap 是更好的选择。如果您正在处理单线程应用程序,您最好使用 HashMap

Now each of the objects will have an ID number and will be stored in an appropriate hashtable (hashtableA, hashtableB, etc).

因此,这里您管理Object 中的所有数据,并将其存储到HashTable 中,IdObject .如果是单线程你可以试试下面的方法,

创建一个父类Data,它应该被所有的子数据类扩展。

class Data {
private Long id;//Unique id of Object by using some strategy to allocate unique

public Long getId() {
return id;
}

public void setId(Long id) {
this.id = id;
}
}

public class DataUtils {

//Created only once for whole application
private static final Map<Long, Data> DATA_MAP = new HashMap<Long, Data>();

public void addObjectToMap(Data data) {
DATA_MAP.put(data.getId(), data);
}

public Data getData(Long id) {
return DATA_MAP.get(id);
}

}

注意:这只是一个示例,您可能需要根据您的情况相应地使用它。

关于java - 如果我有一个要从多个类访问的对象列表,我应该在哪里存储这些对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32262406/

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