我有一个list<MyObject>
(java LinkedList
)。每个对象都有一个键和一个值属性。存储vs处理时间
客户端1需要整个列表。
客户端2将在返回
客户端3传递一个键和期待值将传递值和预期回报的关键。
问题是,由于Java集合使用指向实际对象的指针而不是存储对象,因此值得存储两个以上的地图。
Map<key, MyObject>
服务客户端2(java的HashMap
)
Map<value, MyObject>
服务客户端3.(Java HashMap
)
这将节省处理涉及通过整个列表(list<MyObject>
)迭代时间和寻找匹配键或值。
你在说几十,几百或几千个'MyObject'实例吗? –
除了史蒂夫所说的:**多少次**你会执行这个搜索,并在**哪个场景**?如果在将20 GB保存到磁盘之前保存1秒,或者每天用户打开一个表单时保存50 ms ...您可能不需要任何_optimization _...此外,您也可以考虑使用HashSet而不是LinkedList。 –
数百个对象。这些对象是客户经常查询的一种主数据。 – Oliver