JAVA數據結構有哪幾種?
有幾種JAVA數據結構:
1、列表:
列表是有序的集合。使用這個界面,您可以精確地控制每個元素的插入位置。用戶可以使用索引(元素在列表中的位置,類似于數組下的gt標記)來訪問列表中的元素,類似于Java的數組。
2、向量:
基于數組的鏈表實際上封裝了數組沒有的一些函數供我們使用,所以很難避免數組的局限性,性能無法超越數組。
還有一點很重要,Vector是同步的,這也是Vector和ArrayList的一個重要區別。
3、數組列表:
和Vector一樣,是基于數組的鏈表,不同的是ArrayList不是同步的。所以在性能上比Vector要好,但是在多線程環境下運行時,可能需要自己管理線程的同步。
4、鏈接列表:
linkedList與前兩個列表不同,因為它不是基于數組的,所以不受數組性能的限制。每個節點包含兩個方面:節點本身的數據和下一個節點的信息。
所以當添加和刪除linkedList時,你不需要。;不需要像基于數組的數組列表那樣移動大量數據。可以通過改變nextNode的相關信息來實現,這是linkedList的優勢。
5、哈希集:
雖然Set和List都實現了集合接口,但是它們的實現方法卻大相徑庭。列表基本上是基于數組的。
但是Set是在HashMap的基礎上實現的,這是Set和List的根本區別。HashSet的存儲是使用HashMap中的鍵作為Set的對應存儲項。
6、散列表:
基于哈希表的Map接口實現。這個實現提供了所有可選的映射操作,并允許使用空值和空鍵。(HashMap類類似于Hashtable,只是它是異步的,并且允許null。)這個類不保證映射的順序,尤其不保證順序不變。
7、哈希表:
Hashtable是一個哈希表,它存儲的內容是一個鍵值映射。Hashtable從Dictionary繼承,實現Map、Cloneable和Interface。
散列表函數都是同步的,這意味著它是線程安全的。它的鍵和值不能為空。