是在J2ME下的, 我有一个好大的文本文件. 反正就是特大了, 大到不能一次全部装入到内在了.
我是这样, 在文件头部放了一个索引块(数组), 每个索引块都存放一个小文本块在文件中的位置和大小. 这样, 我在运行程序中只要把索引块装入. 然后先根据索引块装入若干个小文本块到String动态数组中. 这些文本块当然是在屏幕上显示的文本块和之前之后的文本块(即将要显示的文本块).
在C++程序中, 可以使用链表来根据用户输入和屏幕显示来动态的装入和删除小的文本块. 这样, 只要按向上翻页就可以开个线程先把后面不需要的删除, 再把前面将要显示的装入. 这样的链表效率是非常高的. 但是在J2ME中, 就只能用vector了, 这样不能在前面插入, 那样所有数据都向后移动, 也不能在前面删除, 这样所有数据都向前移动了. 没有链表那种清查的结构和高效率. 应该如何解决. 可以动态在前面, 后面插入数据, 删除数据. 这样我按向上翻页时, 可以在动态数组前面加入一个String, 将最后的String删除. 按向下翻页时, 将前面的String删除, 在后面增加String.或者是像这样动态装入大文件有没有什么更好的算法或是文章, 代码可以参考啊, 谢谢.

解决方案 »

  1.   

    j2me有LinkedList吗如果没有的话,就到jdk的src里去抄袭一下,自己实现
      

  2.   

    Collections类里面有个工具方法,想使用线程安全的链表,你可以这样声明:
    List list = Collections.synchronizedList(new LinkedList());
    这样所生成的list,基本方法都是线程安全的。
    但是,Iterator不是线程安全的。
      

  3.   

    自己用Java实现一个链表啊. 会用  不会做..这个不行..  java也是一门语言. 不是纯工具.只用就行了..他也可以造..
      

  4.   

    为何不用RandomAccess呢?可以用很少的内存,进行文件的操作。