摘要:工具包提供了強(qiáng)大的數(shù)據(jù)結(jié)構(gòu)這一節(jié),我們來學(xué)習(xí)下的數(shù)據(jù)結(jié)構(gòu)。枚舉接口定義了一種從數(shù)據(jù)結(jié)構(gòu)中取回連續(xù)元素的方式。六字典字典類是一個(gè)抽象類,它定義了鍵映射到值的數(shù)據(jù)結(jié)構(gòu)。哈希表鍵的具體含義完全取決于哈希表的使用情景和它包含的數(shù)據(jù)。
Java工具包提供了強(qiáng)大的數(shù)據(jù)結(jié)構(gòu),這一節(jié),我們來學(xué)習(xí)下Java的數(shù)據(jù)結(jié)構(gòu)。一、數(shù)據(jù)結(jié)構(gòu)分類
枚舉(Enumeration)
位集合(BitSet)
向量(Vector)
棧(Stack)
字典(Dictionary)
哈希表(Hashtable)
屬性(Properties)
二、枚舉(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è)元素。
三、位集合(BitSet)位集合類實(shí)現(xiàn)了一組可以多帶帶設(shè)置和清除的位或標(biāo)志。
該類在處理一組布爾值的時(shí)候非常有用,你只需要給每個(gè)值賦值一"位",然后對(duì)位進(jìn)行適當(dāng)?shù)脑O(shè)置或清除,就可以對(duì)布爾值進(jìn)行操作了。
四、向量(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)的變化。
五、棧(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)棧的元素最先被取出。
import java.util.*; public class StackDemo { static void showpush(Stack六、字典(Dictionary)st, int a) { st.push(new Integer(a)); System.out.println("push(" + a + ")"); System.out.println("stack: " + st); } static void showpop(Stack st) { System.out.print("pop -> "); Integer a = (Integer) st.pop(); System.out.println(a); System.out.println("stack: " + st); } public static void main(String args[]) { Stack st = new Stack (); System.out.println("stack: " + st); showpush(st, 42); showpush(st, 66); showpush(st, 99); showpop(st); showpop(st); showpop(st); try { showpop(st); } catch (EmptyStackException e) { System.out.println("empty stack"); } } }
字典(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)。
七、哈希表(Hashtable)Hashtable類提供了一種在用戶定義鍵結(jié)構(gòu)的基礎(chǔ)上來組織數(shù)據(jù)的手段。
例如,在地址列表的哈希表中,你可以根據(jù)郵政編碼作為鍵來存儲(chǔ)和排序數(shù)據(jù),而不是通過人名。
哈希表鍵的具體含義完全取決于哈希表的使用情景和它包含的數(shù)據(jù)。
八、屬性(Properties)Properties 繼承于 Hashtable.Properties 類表示了一個(gè)持久的屬性集.屬性列表中每個(gè)鍵及其對(duì)應(yīng)值都是一個(gè)字符串。
Properties 類被許多Java類使用。例如,在獲取環(huán)境變量時(shí)它就作為System.getProperties()方法的返回值。
九、ArrayList 和 LinkedList 的區(qū)別ArrayList 是 List 接口的一種實(shí)現(xiàn),它是使用數(shù)組來實(shí)現(xiàn)的。
LinkedList 是 List 接口的一種實(shí)現(xiàn),它是使用鏈表來實(shí)現(xiàn)的。
ArrayList 遍歷和查找元素比較快。LinkedList 遍歷和查找元素比較慢。
ArrayList 添加、刪除元素比較慢。LinkedList 添加、刪除元素比較快。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/70829.html
摘要:我的學(xué)習(xí)筆記匯總標(biāo)簽筆記分為兩大部分和筆記內(nèi)容主要是對(duì)一些基礎(chǔ)特性和編程細(xì)節(jié)進(jìn)行總結(jié)整理,適合了解基礎(chǔ)語法,想進(jìn)一步深入學(xué)習(xí)的人如果覺得不錯(cuò),請(qǐng)給,這也是對(duì)我的鼓勵(lì),有什么意見歡迎留言反饋目錄基礎(chǔ)鞏固筆記反射基礎(chǔ)鞏固筆記泛型基礎(chǔ)鞏 我的java&javaweb學(xué)習(xí)筆記(匯總) 標(biāo)簽: java [TOC] 筆記分為兩大部分:javase和javaweb javase javawe...
摘要:另外打散方式也不同,只用了一次異或,這里用了四次,給出的解釋是一次夠了,而且就算沖突了也會(huì)轉(zhuǎn)換成紅黑樹,對(duì)效率沒什么影響。 介紹 WeakHashMap是一種弱引用map,內(nèi)部的key會(huì)存儲(chǔ)為弱引用,當(dāng)jvm gc的時(shí)候,如果這些key沒有強(qiáng)引用存在的話,會(huì)被gc回收掉,下一次當(dāng)我們操作map的時(shí)候會(huì)把對(duì)應(yīng)的Entry整個(gè)刪除掉,基于這種特性,WeakHashMap特別適用于緩存處理。...
摘要:而面向搜索引擎,就是我們要及時(shí)的使用百度谷歌遇到問題無法解決,先別急著放棄,可以去網(wǎng)絡(luò)尋找答案,你的坑大部分別人都已經(jīng)走過了,大部分都可以找到合適的解決方案。 showImg(https://segmentfault.com/img/remote/1460000019236352?w=866&h=456); 前言: ●眾多的語言,到底哪一門才是適合我的?●我們?yōu)槭裁匆獙W(xué)習(xí)Java語言呢...
閱讀 746·2021-11-22 13:52
閱讀 1553·2021-09-27 13:36
閱讀 2863·2021-09-24 09:47
閱讀 2224·2021-09-22 15:48
閱讀 3625·2021-09-22 15:39
閱讀 1493·2019-08-30 12:43
閱讀 2947·2019-08-29 18:39
閱讀 3221·2019-08-29 12:51