有2万组数据,每组数据包括三项,两项为char(20),一项为int型,并且这2万项数据是具有先后顺序的
且每网这里面增加一组数据,就需要把旧的第一组数据删除掉请问我应该用什么样的数据结构好些?
1.把这三项数据构成一个类,还是直接Object[3] ?
2.用List还是Map或其它?

解决方案 »

  1.   

    封装成object。放入list。
    为嘛不存入数据库?
      

  2.   


    看起来是个循环队列。你还有其它什么要求么?比如迅速用下标定位某个元素?如果没有快速定位要求,建议用 LinkedList,如果有,建议用 ArrayList 模拟循环队列。
      

  3.   

    这2万条记录是从数据库查出来,打算存在list里并将其缓存起来,2万条的list大概要占多少内存?这么做会不会得不偿失
      

  4.   

    “其它要求:需要依次遍历2万组数据”
    依次遍历的话,LinkedList就能解决了,当然ArrayList也能很好解决,甚至数组都能很好解决。
    “2万条的list大概要占多少内存”
    2W条本身倒不算多,但还要看你每行多大,这个自己完全可以估算出来,比如你每行是1K大小,那么2W×1K总共大概就20MB的空间,而32bit的JVM大约可以配置1.5GB内存,所以20MB大小基本上完全不够看。
    “会不会得不偿失”
    从你目前介绍的信息,无法得出判断,要根据使用场景、访问频度、更新频度等才能判断。
      

  5.   

    另外:
    1.用Oject[]数组好还是类定义3个属性好?两项为char(20),一项为int型
    2.更新频率大概在5-10分钟之间
      

  6.   

    ◎用Oject[]数组好还是类定义3个属性好?两项为char(20),一项为int型
    从性能上来说没啥差异,从规范化来说还是定义成类属性好。
    ◎更新频率大概在5-10分钟之间
    其实访问量更重要,如果你每5~10分钟就要从数据库中将10W行全部重新装载一次,然后在这期间只需要依次遍历一次就够,那当然就显得多此一举了。
      

  7.   

    如果是实际工作,直接把数据放在数据库里,使用SQL语句得到想要的结果即可.没有必要自己实现.而且,如果自己不是很牛,也容易出问题.学习研究除外