关于ArrayList和LinkedList的解释,danceflash(Wine)说的就已经是了。 补充如何使之线程安全的做法: << List list = Collections.synchornizedList(new ArrayList()); 或者 List list = Collections.synchornizedList(new LinkedList()); >> 这样使用,返回的是Collections内部的一个实现了List接口的inner class,具体功能委派到你传入的具体List实现,增加的部分是增加了同步锁。
Vector和Hashtable本身就实现了同步锁的。
确实,我以前不太明白为什么还有人老用Vector,后来才知道Vector是线程安全的 ^_^
做点补充: Vector and Hashtable 是java 2.0以前版本的,java 2.0 里分别为 Arrylist and Hashmap 所取代。 目的就是为了提高效率。
LinkedList是个链接列表
Collection类都不是同步的
Runtime.getRuntime().exec("notepad");
补充如何使之线程安全的做法:
<<
List list = Collections.synchornizedList(new ArrayList());
或者
List list = Collections.synchornizedList(new LinkedList());
>>
这样使用,返回的是Collections内部的一个实现了List接口的inner class,具体功能委派到你传入的具体List实现,增加的部分是增加了同步锁。
Vector and Hashtable 是java 2.0以前版本的,java 2.0 里分别为 Arrylist and Hashmap 所取代。 目的就是为了提高效率。
同时为了实现同步,Collections提供了同步Arrylist 的方法。 如 xiaohaiz(老土进城,两眼通红) 所述。 linkedlist 是双向联表,在插入时有较高的效率。 而调用外部.ext,可见 Hodex(小何才露尖尖角) 提供的Runtime的方法。