java數據結構

java數據結構

計算機存儲數據,組織數據的方式。

java數據結構的分類:

1.數組

最基礎的數據結構,也是剛接觸java時學的,編碼形式:類型 [] 變量名 = new 類型[個數];

優點:隨機讀取方便,快捷;

缺點:插入,刪除較複雜。

2.List《列表》

    實現類:ArrayList,LinkedList。

    ArrayList

       優點 :隨機讀取較快。

       缺點:插入刪除較麻煩。

    LinkedList (以鏈表的形式存儲數據)

      優點:插入刪除較簡單。

      缺點:隨機讀取較複雜。

    還有一種列表的數據結構叫Vector,它和上面兩個的區別在於Vector是線程安全。

3.Set《集合》

    實現類:HashSet,TreeSet, LinkedHashSet

    HashSet

       帶有哈希表,以哈希算法的方式存儲數據。

    TreeSet

       帶有排序功能的集合,將插入的元素按照自己的排序算法進行排序,

       當然了,也可以自己實現自己的排序算法。

    LinkedHashSet

       以鏈表的形式,同時運行哈希算法存儲數據。

4.Map《映射》

    實現類:HashMap,LinkedHashMap,TreeHashMap,HashTable(線程安全),ConcurrentHashMap(線程安全)。

    這裏主要講HashTable和ConcurrentHashMap的區別:

    HashTable:單線程安全,一個線程訪問整張數據表,造成了浪費。

    ConcurrentHashMap:可以理解爲多線程安全,將整張數據表分爲16個子表,減少了浪費,允許多個線程訪問整張表。

 

 

個人總結:

List和Set的區別在於,List允許存入的元素相同,Set不允許。

Map則是鍵值必須唯一

關於這些數據結構的名字:

 包含Linked,都是採用鏈表的形式存儲,所以插入刪除較爲方便。

 包含Hash,都是採用哈希算法,有一個哈希表。

 包含Tree,一般該數據結構的數據都是有序的。

    

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章