Java學習日記-java資料結構
阿新 • • 發佈:2018-12-25
Java 資料結構
1.列舉(Enumeration)
enumerate本身不是資料結構,但是在其他資料結構中使用比較多,可以從資料結構中取回連續元素,但是現在被迭代器取代,現代程式碼中用的非常少。Enumeration的方法比較少,用來判斷列舉列表中是否有元素,以及獲取下一個元素。
hasmoreElements() | 在從資料結構中取回資料之前需要將資料結構中的資料復賦值給Enumeration物件,然後通過Enumeration的方法來遍歷資料 |
---|---|
nextElement() | 用來獲取下一個元素 |
2.位集合(Bitset)
獨立建立位或者標誌,在對一系列bool型別值進行操作是非常有用,通過操作設定的位或者標誌間接的操作bool值。
所有方法可以概括為一下幾類:
設定 | set(),clear() |
---|---|
運算 | and、or、andNot、xor、equals |
描述查詢 | isempty、cardinality |
其他 | tostring、clone、get、flip、and |
note:直接輸出BitSet變數時,只會輸出所有值為true的元素對應的位的set,而不是輸出每一位的值。若要輸出每一位bool值需要通過get方法來訪問。
3.向量(vector)
向量也是一種動態陣列,與ArrayList和BitSet一樣可以自增來適應需要儲存的資料大小並且封裝了一些功能,不同的是vector可以用線上程同步中,不需要自己管理執行緒同步問題。
增 | add、addAll、addElement、insertElementAt |
---|---|
刪 | clear、remove、removeAll、removeAllElements、removeElement、removeRange、removeElementAt |
改 | set、setElementAt |
查 | indexof、elemenAt |
其他 | contains、toString、elements、clone、capacity、isEmpty、size |
4.棧(stack)
stack是vector的一個子類,但它同時定義了一些屬於自己的方法來實現經典棧的後進先出的特性。
boolean empty() | 用於判斷棧內是否為空 |
---|---|
Object peek() | 用於查詢棧頂部的元素 |
Object pop() | 刪除棧頂部元素 |
Object push() | 往棧頂壓入元素 |
int search() | 查詢目標項在棧內的位置 |
note:search方法是以棧頂元素為基準並定為1,往後的元素以此遞增1。
5.字典(dict)
Dict通過鍵值對映來定義資料結構,通過鍵來訪問儲存的值,一般用於不通過整數來查詢值的情景中,所以字典中的鍵不是整數值而是特定的鍵。
note:字典是抽象方法,需要自己實現相應的功能,現在一般通過實現 Map介面來獲取字典功能。
增加 | put()、putAll() |
---|---|
刪除 | clear()、remove() |
查詢 | get() |
其他 | keySet()、values()、entrySet() |
6.雜湊表(Hashtable)
雜湊表是字典的具體實現,也是通過對映關係建立資料結構。在java2後實現了map介面,和Hashmap非常相似,但是有一個重要的區別是Hashtable支援執行緒同步。
7.屬性(properties)
屬性繼承了Hashtable,常常用來儲存屬性集。properties的鍵和值一般都是字串,它的值一般也稱作屬性。屬性介面中的方法也與Hashtable的方法大致一樣。