1、ArrayList的内部实现用的是线性表,LinkedList的内部实现用的是链表
   这两个都不是线程安全的

解决方案 »

  1.   

    ArrayList和Vector差不多,用来实现动态数组的
    LinkedList是个链接列表
    Collection类都不是同步的
    Runtime.getRuntime().exec("notepad");
      

  2.   

    关于ArrayList和LinkedList的解释,danceflash(Wine)说的就已经是了。
    补充如何使之线程安全的做法:
    <<
    List list = Collections.synchornizedList(new ArrayList());
    或者
    List list = Collections.synchornizedList(new LinkedList());
    >>
    这样使用,返回的是Collections内部的一个实现了List接口的inner class,具体功能委派到你传入的具体List实现,增加的部分是增加了同步锁。
      

  3.   

    Vector和Hashtable本身就实现了同步锁的。
      

  4.   

    确实,我以前不太明白为什么还有人老用Vector,后来才知道Vector是线程安全的 ^_^
      

  5.   

    做点补充:
       Vector and Hashtable 是java 2.0以前版本的,java 2.0 里分别为 Arrylist and Hashmap 所取代。 目的就是为了提高效率。
       
       同时为了实现同步,Collections提供了同步Arrylist 的方法。 如 xiaohaiz(老土进城,两眼通红) 所述。   linkedlist 是双向联表,在插入时有较高的效率。   而调用外部.ext,可见  Hodex(小何才露尖尖角)  提供的Runtime的方法。