ArrayList or Multiple LinkedHashMap



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

列表将包含大约 100-150 个对象,两张地图也是如此。 它将由并发用户每天使用。

问"效率"就像问"美"。什么是"效率"?我认为效率是最快地将代码发布出去而不会出现错误或其他不当行为的原因。就软件成本而言,最有效的是节省程序员的初始开发和维护时间。在你找到SO的"答案"的时间内,你可以有一个正确的实现编码和正确,并且仍然有时间在受控条件下严格测试你的替代方案,看看哪个对程序的操作有任何影响。

如果你节省了 10 毫秒的程序运行时间,代价是极其复杂、过度设计的代码,这些代码充斥着错误,并且难以重构或修复,这是否"高效"?

此外,正如措辞,这个问题在 SO 上毫无用处。您没有根据上下文提供"高效"的定义。您没有提供任何信息,说明相关结构如何适应您的项目架构,或其使用程度,或问题的规模,或与"效率"的任何定义相关的任何其他信息。

即使你有,我们也没有能力回答这样的问题,就像你问一屋子的律师一样,"我应该起诉某某他们的所作所为吗?这一切都取决于。如果您需要建议,您需要建议,这些建议非常特定于您的情况以及开发环境和流程的确切情况、运行时环境、团队、项目目标、预算和其他相关数据。

如果您对运行时"效率"感兴趣,请执行以下操作。准确定义"高效"的确切含义,包括对"'高效'有多大才足够'高效'?"的回答,并包括衡量这种"效率"的标准。一旦你有了这样一个精确且(不可)证明的定义,那么建立一个严格的测试协议来比较你的上下文中的替代方案,并实际衡量"效率"。

在定义"效率"时,请确保您定义的内容很重要。在一个项目成本或影响非常低的领域保持"高效",而忽略一个具有巨大成本或影响的领域,这没有什么区别。

不要指望在SO上为您的情况提供任何有意义的答案。

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

最新更新