多个集合中的相同对象

时间:2014-07-11 18:10:00

标签: java object collections

将同一个对象保存在多个集合中是否是一种很好的编程习惯?

假设我有一张地图,其中包含例如:500+元素,

Map<String,MyObject> map = new HashMap<>();

我的应用程序适用于多个连接的客户端,我知道每个客户端几乎总是只使用此地图中的±20个已知和不同的元素。

我的问题是,如果我想保存一些迭代,为每个客户创建一个地图是否是一个好主意,它将容纳这20个元素。

2 个答案:

答案 0 :(得分:6)

当然可以。它甚至可以是一种重用对象的方法,而不是创建大量包含相同数据的新对象(您可以将其称为对象池或飞行权重模式)。

但是,它属于上下文,您必须确定对象的更改方式和方式。如果客户端A更改了一个对象,它也将被更改为客户端B.如果这是你想要的,那就完全可以了。

答案 1 :(得分:1)

是的,这是个好主意,因为如果地图较小,从地图获取所需对象的时间会更短。只要您没有克隆这些对象,并且在不同的地图中没有重复的对象