如果List里面项目很多 达到3000到1W条以上,而且不能直接通过索引定位每一项。
由于处于大的并发程序中,而且不光是查询,会有修改操作。 List要求线程安全,就是会有很多线程要遍历这个List。
每次需要遍历List找到要的数据,我觉得这样效率不高。是否可以用内嵌的数据库来
解决这个问题呢?比如将数据都存在数据库中,然后根据条件直接查找出来,这样效率是不
是比遍历List效率高?
请指点,或者有其他解决方案?
问题补充
内存数据库不是好的方案,把这些数据加载进去花的时间也不少。
建议用Map,把最常用的当做Key,配合commons collections,这才是正道
一万条数据不算很多吧,效率应该不会有太大的影响。
用Commons Collections里的数据结构,高效的并发包都是用里面的类写的,另外靠率不用list,用tree
用数组,其实数据库加个index也挺快的
用个内存数据库做中介?
恩,用ConcurrencyMap吧,用List的话,每次找个东西都要遍历,而且还要加同步锁,会疯掉的。