多个集合中的相同对象

use*_*903 2 java collections object

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

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

Map<String,MyObject> map = new HashMap<>();
Run Code Online (Sandbox Code Playgroud)

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

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

Tho*_*rig 6

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

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