建议先把data.txt中的数据全读出来,放在程序中,需要修改在修改,你的文本前面的数据是按大小排序的,使用快的算法试试

解决方案 »

  1.   

    一个个查询....如果你有10000000000条你一个一个查,疯了。
    我觉得,这种问题可以类似的归纳成为数据库搜索问题
    我们为了避免全表搜索,我们做得事情是什么? -- 索引, right
    所以,我的建议是,
    1。取出所有 id / 行数 ,具体的中文不用管,放入arraylist
    2。排序,这个arraylist就有,如果你用高效的归并排序,当然更好
    3。折半查找,最理想的情况就是马上找到
    找到后,找出相应的line number ->取出记录,修改
    这样的效率一定比你现有的快。
    其实数据库好像基本就是这么做的,不管是sql的non-cluster还是oracle的b-tree index.
      

  2.   

    如果你的行数特别多,那么你可以分批做,因为我不喜欢一下子在内存开很大的数据块,(我本人以前从c++作起,:) )一次一次做.其实你的每个object 的大小应该是long + int = 12B
    12B×3000 = 36k
      

  3.   

    如何高效存储,关注一下。
    是否可考虑,把数据导入access进行操作。
      

  4.   

    superxiaomm(小美)
    存储有没有好的方法??什么意思?我的方法不好嘛??
    我的方法保证不是全表搜索
    --------------------------------------------
    能否给个例子,谢谢