Java 數(shù)據(jù)結(jié)構(gòu)

ava工具包提供了強(qiáng)大的數(shù)據(jù)結(jié)構(gòu)。在Java中的數(shù)據(jù)結(jié)構(gòu)主要包括以下幾種接口和類:

枚舉(Enumeration)

位集合(BitSet)

向量(Vector)

棧(Stack)

字典(Dictionary)

哈希表(Hashtable)

屬性(Properties)

以上這些類是傳統(tǒng)遺留的,在Java2中引入了一種新的框架-集合框架(Collection),我們后面再討論。

枚舉(Enumeration)

枚舉(Enumeration)接口雖然它本身不屬于數(shù)據(jù)結(jié)構(gòu),但它在其他數(shù)據(jù)結(jié)構(gòu)的范疇里應(yīng)用很廣。 枚舉(The Enumeration)接口定義了一種從數(shù)據(jù)結(jié)構(gòu)中取回連續(xù)元素的方式。

例如,枚舉定義了一個(gè)叫nextElement 的方法,該方法用來得到一個(gè)包含多元素的數(shù)據(jù)結(jié)構(gòu)的下一個(gè)元素。

關(guān)于枚舉接口的更多信息,請(qǐng)參見枚舉(Enumeration)。

位集合(BitSet)

位集合類實(shí)現(xiàn)了一組可以單獨(dú)設(shè)置和清除的位或標(biāo)志。

該類在處理一組布爾值的時(shí)候非常有用,你只需要給每個(gè)值賦值一"位",然后對(duì)位進(jìn)行適當(dāng)?shù)脑O(shè)置或清除,就可以對(duì)布爾值進(jìn)行操作了。

關(guān)于該類的更多信息,請(qǐng)參見位集合(BitSet)。

向量(Vector)

向量(Vector)類和傳統(tǒng)數(shù)組非常相似,但是Vector的大小能根據(jù)需要?jiǎng)討B(tài)的變化。

和數(shù)組一樣,Vector對(duì)象的元素也能通過索引訪問。

使用Vector類最主要的好處就是在創(chuàng)建對(duì)象的時(shí)候不必給對(duì)象指定大小,它的大小會(huì)根據(jù)需要?jiǎng)討B(tài)的變化。

關(guān)于該類的更多信息,請(qǐng)參見向量(Vector)

棧(Stack)

棧(Stack)實(shí)現(xiàn)了一個(gè)后進(jìn)先出(LIFO)的數(shù)據(jù)結(jié)構(gòu)。

你可以把棧理解為對(duì)象的垂直分布的棧,當(dāng)你添加一個(gè)新元素時(shí),就將新元素放在其他元素的頂部。

當(dāng)你從棧中取元素的時(shí)候,就從棧頂取一個(gè)元素。換句話說,最后進(jìn)棧的元素最先被取出。

關(guān)于該類的更多信息,請(qǐng)參見棧(Stack)。

字典(Dictionary)

字典(Dictionary) 類是一個(gè)抽象類,它定義了鍵映射到值的數(shù)據(jù)結(jié)構(gòu)。

當(dāng)你想要通過特定的鍵而不是整數(shù)索引來訪問數(shù)據(jù)的時(shí)候,這時(shí)候應(yīng)該使用Dictionary。

由于Dictionary類是抽象類,所以它只提供了鍵映射到值的數(shù)據(jù)結(jié)構(gòu),而沒有提供特定的實(shí)現(xiàn)。

關(guān)于該類的更多信息,請(qǐng)參見字典( Dictionary)。

哈希表(Hashtable)

Hashtable類提供了一種在用戶定義鍵結(jié)構(gòu)的基礎(chǔ)上來組織數(shù)據(jù)的手段。

例如,在地址列表的哈希表中,你可以根據(jù)郵政編碼作為鍵來存儲(chǔ)和排序數(shù)據(jù),而不是通過人名。

哈希表鍵的具體含義完全取決于哈希表的使用情景和它包含的數(shù)據(jù)。

關(guān)于該類的更多信息,請(qǐng)參見哈希表(HashTable)。

屬性(Properties)

Properties 繼承于 Hashtable.Properties 類表示了一個(gè)持久的屬性集.屬性列表中每個(gè)鍵及其對(duì)應(yīng)值都是一個(gè)字符串。

Properties 類被許多Java類使用。例如,在獲取環(huán)境變量時(shí)它就作為System.getProperties()方法的返回值。

關(guān)于該類的更多信息,請(qǐng)參見屬性(Properties)。


學(xué)習(xí)Java的同學(xué)注意了!?。?br>學(xué)習(xí)過程中遇到什么問題或者想獲取學(xué)習(xí)資源的話,歡迎加入Java學(xué)習(xí)交流群346942462,我們一起學(xué)Java!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容