ArrayList和LinkedList的區別

ArrayList 採用的是數組形式來保存對象的,這種方式將對象放在連續的位置中,因此最大的缺點就是插入刪除時很是麻煩
LinkedList 採用的將對象存放在獨立的空間中,並且在每一個空間中還保存下一個連接的索引 可是缺點就是查找很是麻煩 要叢第一個索引開始

Hashtable和HashMap類有三個重要的不一樣之處。第一個不一樣主要是歷史緣由。Hashtable是基於陳舊的Dictionary類的,HashMap是Java 1.2引進的Map接口的一個實現。

也許最重要的不一樣是Hashtable的方法是同步的,而HashMap的方法不是。這就意味着,雖然你能夠不用採起任何特殊的行爲就能夠在一個多線程的應用程序中用一個Hashtable,但你必須一樣地爲一個HashMap提供外同步。一個方便的方法就是利用Collections類的靜態的synchronizedMap()方法,它建立一個線程安全的Map對象,並把它做爲一個封裝的對象來返回。這個對象的方法可讓你同步訪問潛在的HashMap。這麼作的結果就是當你不須要同步時,你不能切斷Hashtable中的同步(好比在一個單線程的應用程序中),並且同步增長了不少處理費用。 第三點不一樣是,只有HashMap可讓你將空值做爲一個表的條目的key或value。HashMap中只有一條記錄能夠是一個空的key,但任意數量的條目能夠是空的value。這就是說,若是在表中沒有發現搜索鍵,或者若是發現了搜索鍵,但它是一個空的值,那麼get()將返回null。若是有必要,用containKey()方法來區別這兩種狀況。 一些資料建議,當須要同步時,用Hashtable,反之用HashMap。可是,由於在須要時,HashMap能夠被同步,HashMap的功能比Hashtable的功能更多,並且它不是基於一個陳舊的類的,因此有人認爲,在各類狀況下,HashMap都優先於Hashtable。 關於Properties 有時侯,你可能想用一個hashtable來映射key的字符串到value的字符串。DOS、Windows和Unix中的環境字符串就有一些例子,如key的字符串PATH被映射到value的字符串C:\WINDOWS;C:\WINDOWS\SYSTEM。Hashtables是表示這些的一個簡單的方法,但Java提供了另一種方法。 Java.util.Properties類是Hashtable的一個子類,設計用於String keys和values。Properties對象的用法同Hashtable的用法相象,可是類增長了兩個節省時間的方法,你應該知道。 Store()方法把一個Properties對象的內容以一種可讀的形式保存到一個文件中。Load()方法正好相反,用來讀取文件,並設定Properties對象來包含keys和values。 注意,由於Properties擴展了Hashtable,你能夠用超類的put()方法來添加不是String對象的keys和values。這是不可取的。另外,若是你將store()用於一個不包含String對象的Properties對象,store()將失敗。做爲put()和get()的替代,你應該用setProperty()和getProperty(),它們用String參數。
相關文章
相關標籤/搜索