救命啊:我要做个向量表,按字母顺序存储一堆东西。添加新的的时候,计算到应该在的脚标了,然后用
insertElementAt()插入但这个方法貌似在大数据量里很慢,我可以用什么方法来处理呀?或者别的来替代Vector?

解决方案 »

  1.   

    用LinkList 在插入删除的效率上要高一些 但要访问哪一个 需要的节点就要低些
      

  2.   

    Vector是线程安全的,所以效率低。
    ArrayList查询快,添加删除慢,底层由数组实现,添加删除需要移动元素,访问可以直接定位。
    LinkedList添加删除快,查询慢,底层有链表实现,添加删除只需要修改节点指向,查询需要遍历。
      

  3.   

    想了一下发现 好像还是 LinkList 比较符合要求
     set --其中的值不允许重复,无序的数据结构 
     list   --其中的值允许重复,因为其为有序的数据结构 
     map--成对的数据结构,健值必须具有唯一性(键不能同,否则值替换) 不过我觉得 这个  “按字母顺序存储一堆东西”,是一定要按 字典里的循序吗 
    如果不是的话 貌似可以重写 hashcode 方法从而用hashmap来解决 这样查找起来会很快
    毕竟是向量表 很大程度是用来查找  但一般来说 重写了 hashcode方法 
    记得要重写 equals方法 他们一般是成对的重写的
      

  4.   

    嗯,谢谢两为位高手,我这也在研究测试,主要功能就是判断这个表中是否有新来的String,没有就加入进去,有就修改。
    由于数据量很大,判断和添加都希望很快。一会儿用map看看。
      

  5.   


    唉 你不把需求说清 如果是String 的话 你听说过Java字符串常量池吗 这个常量池就很像你要实现的
    东西AD一下 看看我写的博客 写的不好 哈哈 看看字符串常量池机制
    http://blog.csdn.net/KindAzrael/archive/2009/10/03/4630409.aspx
      

  6.   

    呵呵,现在用TreeMap后很满意。嗯,我再研究下你写的字符串常量池机制
      

  7.   

    然后把TreeMap中的Key弄出来,merge下,再按顺序读出Object,应该就OK了。