0

语言 :Java
项目类型:Web(战争应用程序)
要求 :维护一个可以包含键值对的数据结构

描述 :我们有一个数据库表,我们在其中映射了键、值对

E.g. I) - Like for Customer Information, Table Name: - Customer_Info
----------------------------------------------------
 Key                |    Value
 Customer_Name      |     ABC
 Address            |     XYZ

continued....around 2000

我们从数据库中获取客户信息并将其保存在数据结构中。之后在使用过程中,我们获取与键对应的值。

到目前为止,我们选择了LinkedHashMap来维护键值对。

问题:-

But I think here is some problem in data structure selection. 


如果我选择LinkedHashMapHashMapConcurrentHashMap ,请解释这两种情况。哪种数据结构合适?

案例 I - 如果我维护 2000 个键值数据结构。

案例二- 如果我从任何地方从整个地图中获取随机密钥。

要求: -

我们必须保持执行成本,效率并提高产品的生产力。请协助我们选择最佳数据结构。

所有的建议将不胜感激。

4

2 回答 2

2

除了这里唯一重要的答案是通过分析和基准测试代码给出的答案之外,我看不出如何比较这三种数据结构,因为它们是为不同的目的而制作的:

  • HashMap是标准的,非线程安全的
  • ConcurrentHashMap是您将在多线程环境中使用的那个(阅读:较慢)
  • LinkedHashMap是一个法线贴图,它提供了一种对其进行迭代的方法(按照插入顺序)

所以,理论上最快的是HashMap,因为它没有其他两个的开销,但是这里的比较没有任何意义。

于 2013-05-27T17:02:48.200 回答
0

我会选择HashMap这将降低同步成本。键/值对似乎是静态数据,我不需要同步,我认为没有理由使用LinkedHashMap,因为维护顺序没有用。

于 2013-05-27T17:01:27.497 回答