2017-06-21 56 views
0

我有一个自定义对象A的ArrayList。我需要根据特定条件从A检索2个变量。我应该简单地使用for loop每次从列表中检索数据还是创建2 LinkedHashMap并将所需的变量作为键/值对存储以便稍后访问?哪个更有效率?在搜索期间创建2个额外的地图对象是否合理?ArrayList或Multiple LinkedHashMap

列表将包含约100-150对象,因此做两个地图。 它将被并发用户每天使用。

+3

这取决于你多久做一次以及Map有多大。如果它现在有效并且速度足够快,我建议你放弃它,直到你知道你需要改变它。 –

+0

当面对问题“X或Y更有效吗?”时,我发现简单地进行基准测试很有帮助。创建一些模拟数据,将数字填充到数百万,并打印每个测试所需的时间。 (假设你已经理解了两个数据结构的底层结构) –

+1

“没有区别的差别没有区别。” - 匿名。 “不成熟的优化是万恶之源。” - 唐纳德Knuth。 “先把它做好,然后让它快(只),如果你需要的话。” - 上帝。 –

回答

-2

使用LinkedHashMap的,因为它(根据您的要求)。由于数据将在生产环境中增加键值对制造。

+1

你怎么知道这个很有用,@Abishek Kumar Jain? “体面人物”的数据在他们的生产环境中会增加多少,你怎么知道的?为什么'LinkedHashMap'而不是'HashMap'?它在OP的代码中会有多少差异?实施你的情况需要多少钱?你不知道任何这一点,但你想回答这个问题,就好像这是绝对的,普遍的,始终正确的解决方案。没有通过。 –

+0

@LewBloch他需要键值对,并且他要求从LinkedHashMap和list中进行选择。这意味着他的要求是在地图中插入顺序维护,这就是为什么我建议linkedhashmap.Is它没问题。 –