遍历List 还是查询数据库。。

如果List里面项目很多 达到3000到1W条以上,而且不能直接通过索引定位每一项。

由于处于大的并发程序中,而且不光是查询,会有修改操作。 List要求线程安全,就是会有很多线程要遍历这个List。

每次需要遍历List找到要的数据,我觉得这样效率不高。是否可以用内嵌的数据库来

解决这个问题呢?比如将数据都存在数据库中,然后根据条件直接查找出来,这样效率是不

是比遍历List效率高?

请指点,或者有其他解决方案?


问题补充

wzybadboy 写道
一万条数据不算很多吧,效率应该不会有太大的影响。




恩 单个的List是不多

有点忘了说 由于处于大的并发程序中 List要求线程安全,就是会有很多线程要遍历这个List。

内存数据库不是好的方案,把这些数据加载进去花的时间也不少。
建议用Map,把最常用的当做Key,配合commons collections,这才是正道

一万条数据不算很多吧,效率应该不会有太大的影响。

用Commons Collections里的数据结构,高效的并发包都是用里面的类写的,另外靠率不用list,用tree

用数组,其实数据库加个index也挺快的

用个内存数据库做中介?

恩,用ConcurrencyMap吧,用List的话,每次找个东西都要遍历,而且还要加同步锁,会疯掉的。