将同一个对象保存在多个集合中是否是一种很好的编程习惯?
假设我有一张地图,其中包含例如:500+元素,
Map<String,MyObject> map = new HashMap<>();
我的应用程序适用于多个连接的客户端,我知道每个客户端几乎总是只使用此地图中的±20个已知和不同的元素。
我的问题是,如果我想保存一些迭代,为每个客户创建一个地图是否是一个好主意,它将容纳这20个元素。
答案 0 :(得分:6)
当然可以。它甚至可以是一种重用对象的方法,而不是创建大量包含相同数据的新对象(您可以将其称为对象池或飞行权重模式)。
但是,它属于上下文,您必须确定对象的更改方式和方式。如果客户端A更改了一个对象,它也将被更改为客户端B.如果这是你想要的,那就完全可以了。
答案 1 :(得分:1)
是的,这是个好主意,因为如果地图较小,从地图获取所需对象的时间会更短。只要您没有克隆这些对象,并且在不同的地图中没有重复的对象