有2万组数据,每组数据包括三项,两项为char(20),一项为int型,并且这2万项数据是具有先后顺序的
且每网这里面增加一组数据,就需要把旧的第一组数据删除掉请问我应该用什么样的数据结构好些?
1.把这三项数据构成一个类,还是直接Object[3] ?
2.用List还是Map或其它?
且每网这里面增加一组数据,就需要把旧的第一组数据删除掉请问我应该用什么样的数据结构好些?
1.把这三项数据构成一个类,还是直接Object[3] ?
2.用List还是Map或其它?
为嘛不存入数据库?
看起来是个循环队列。你还有其它什么要求么?比如迅速用下标定位某个元素?如果没有快速定位要求,建议用 LinkedList,如果有,建议用 ArrayList 模拟循环队列。
依次遍历的话,LinkedList就能解决了,当然ArrayList也能很好解决,甚至数组都能很好解决。
“2万条的list大概要占多少内存”
2W条本身倒不算多,但还要看你每行多大,这个自己完全可以估算出来,比如你每行是1K大小,那么2W×1K总共大概就20MB的空间,而32bit的JVM大约可以配置1.5GB内存,所以20MB大小基本上完全不够看。
“会不会得不偿失”
从你目前介绍的信息,无法得出判断,要根据使用场景、访问频度、更新频度等才能判断。
1.用Oject[]数组好还是类定义3个属性好?两项为char(20),一项为int型
2.更新频率大概在5-10分钟之间
从性能上来说没啥差异,从规范化来说还是定义成类属性好。
◎更新频率大概在5-10分钟之间
其实访问量更重要,如果你每5~10分钟就要从数据库中将10W行全部重新装载一次,然后在这期间只需要依次遍历一次就够,那当然就显得多此一举了。