Che*_*tah 0 java collections data-structures
假设我有一个1,000,000个用户的列表,其唯一标识符是他们的用户名字符串.因此,为了比较两个用户对象,我只是重写compareTo()方法,比较用户名成员.
给定一个用户名字符串,我希望User从列表中找到该对象.在一般情况下,这是最快的方法.
我猜测HashMap,将用户名映射到User对象,但我想知道是否还有其他一些我不知道哪些会更好.
如果您不需要将它们存储在数据库中(这是通常的情况),HashMap<String, User>那么它可以正常工作 - 它具有O(1)查找的复杂性.
如上所述,通常的情况是将它们放在数据库中.但为了获得更快的结果,使用了缓存.您可以使用EhCache - 它类似于ConcurrentHashMap,但它具有元素的生存时间和分布在多台机器上的选项.
您不应该将整个数据库转储到内存中,因为它很难同步.您将面临使地图中的条目无效并使其保持最新的问题.缓存框架使这一切变得更容易.另请注意,数据库有自己的优化,并且您的用户不可能保留在内存中以便更快地访问.
| 归档时间: |
|
| 查看次数: |
140 次 |
| 最近记录: |