日期:2014-05-20  浏览次数:20627 次

这个场景用什么集合对象呢?
可以用Vector, 或者ConcurrentHashMap

Vector优势是结构简单,插入,移除效率高.

ConcurrentHashMap优势是检索效率高.

而我的集合应用场景基本是: 多线程访问 . 少量插入(也不算太少), 插入的信息生存一段时间之后删除. 然后查询非常频繁.

理论上用ConcurrentHashMap就可以.
但是由于插入和移除操作也不少. 那么到底哪个更合适 呢?

用 Vector 的话查询的时候必然要for. 用ConcurrentHashMap的话必然要忍受插入和移除的效率低.

我该怎么选择?

------解决方案--------------------
个人感觉map更方便一些,避免循环操作。而且增加移除的性能也不会差太多;
经测试10000次循环的时间相差并不大,100000次大约是10倍左右。也都是几百ms以内,完全可以接受。所以主要是看方便吧。