HashMap和Hashtable的區別:
HashMap是Hashtable的輕量級實現(非線程安全的實現),他們都完成了Map接口,主要區別在於HashMap允許空(null)鍵值(key),由於非線程安全,效率上可能高於Hashtable。 HashMap允許將null作爲一個entry的key或者value,而Hashtable不允許。 HashMap把Hashtable的contains方法去掉了,改成containsvalue和containsKey。因爲contains方法容易讓人引起誤解。
Hashtable繼承自Dictionary類,而HashMap是Java1.2引進的Map interface的一個實現。 最大的不同是,Hashtable的方法是Synchronize的,而HashMap不是,在多個線程訪問Hashtable時,不需要自己爲它的方法實現同步,而HashMap 就必須爲之提供外同步。 Hashtable和HashMap採用的hash/rehash算法都大概一樣,所以性能不會有很大的差異。
Arraylist與Vector的區別:
就ArrayList與Vector主要從二方面來說: 1. 同步性:Vector是線程安全的,也就是說是同步的,而ArrayList是線程序不安全的,不是同步的 2. 數據增長:當需要增長時,Vector默認增長爲原來一培,而ArrayList卻是原來的一半4.保證當前線程停止執行,直到該線程所加入的線程完成爲止。然而,如果它加入的線程沒有存活,則當前線程不需要停止。
Collection和Collections的區別:
Collections是個java.util下的類,它包含有各種有關集合操作的靜態方法; Collection是個java.util下的接口,它是各種集合結構的父接口。 Collection是集合類的上級接口,繼承與他的接口主要有Set 和List. Collections是針對集合類的一個幫助類,他提供一系列靜態方法實現對各種集合的搜索、排序、線程安全化等操作。