2016-05-05 96 views
-1

下午好。设计一个使用登录(和其他动作)并保留所有用户数据和密码到内存中的Web服务(不使用任何数据库)我一直怀疑何时确保一个体面的标准效率:Web服务状态的HashMap

首先,选择什么数据结构来存储信息。虽然我认为HashMap将是一个不错的选择,那里将是关键的用户名和其他信息(或者仅仅是密码)值会是这样,我不知道是否有更适合其他数据结构。

此外,在HashMap的情况下,使用separateChainnig还是LinearProbing作为解决冲突的策略会更好吗?在separateChaining的情况下,在最糟糕的情况下,我们面对Hashmap的“缺口”列表中的一个列表,其时间非常长且复杂地升级为线性顺序,但是LinearProbing可能会进行多次rehashes。

对此你有何看法?

非常感谢。

+0

'你的意见是什么?'我认为这个问题应该以基于观点的方式结束 –

+0

使用会话映射这是符合J2EE规范的Web服务器可以是我脑海的第一件事。除此之外,你会被允许使用像H2这样的内存数据库吗? –

+0

只是一个想法,为什么不使用[特里树(https://en.wikipedia.org/wiki/Trie)数据结构insted的 – venkatvb

回答

0

为什么不使用像Redis,H2 .....等一些内存中的持久性存储空间以及更多的开源代码,而不是依赖于非持久性存储。这些都像地图自己的数据结构支持,列出等

但是,如果你仍然想使用HashMap这是一个相当不错的选择,如果你有跨唯一的密钥。但回答你的下一个问题(separateChainnig或LinearProbing)。为什么当java已经为Java 8提供了更好的hashmap性能时,你真的关心实现hashmap。请看这里的示例http://www.nurkiewicz.com/2014/04/hashmap-performance-improvements-in.html