首頁 考試吧論壇 Exam8視線 考試商城 網絡課程 模擬考試 考友錄 實用文檔 求職招聘 論文下載 | ||
![]() |
2011中考 | 2011高考 | 2012考研 | 考研培訓 | 在職研 | 自學考試 | 成人高考 | 法律碩士 | MBA考試 MPA考試 | 中科院 |
|
![]() |
四六級 | 職稱英語 | 商務英語 | 公共英語 | 托福 | 雅思 | 專四專八 | 口譯筆譯 | 博思 | GRE GMAT 新概念英語 | 成人英語三級 | 申碩英語 | 攻碩英語 | 職稱日語 | 日語學習 | 法語 | 德語 | 韓語 |
|
![]() |
計算機等級考試 | 軟件水平考試 | 職稱計算機 | 微軟認證 | 思科認證 | Oracle認證 | Linux認證 華為認證 | Java認證 |
|
![]() |
公務員 | 報關員 | 銀行從業資格 | 證券從業資格 | 期貨從業資格 | 司法考試 | 法律顧問 | 導游資格 報檢員 | 教師資格 | 社會工作者 | 外銷員 | 國際商務師 | 跟單員 | 單證員 | 物流師 | 價格鑒證師 人力資源 | 管理咨詢師考試 | 秘書資格 | 心理咨詢師考試 | 出版專業資格 | 廣告師職業水平 駕駛員 | 網絡編輯 |
|
![]() |
衛生資格 | 執業醫師 | 執業藥師 | 執業護士 | |
![]() |
會計從業資格考試(會計證) | 經濟師 | 會計職稱 | 注冊會計師 | 審計師 | 注冊稅務師 注冊資產評估師 | 高級會計師 | ACCA | 統計師 | 精算師 | 理財規劃師 | 國際內審師 |
|
![]() |
一級建造師 | 二級建造師 | 造價工程師 | 造價員 | 咨詢工程師 | 監理工程師 | 安全工程師 質量工程師 | 物業管理師 | 招標師 | 結構工程師 | 建筑師 | 房地產估價師 | 土地估價師 | 巖土師 設備監理師 | 房地產經紀人 | 投資項目管理師 | 土地登記代理人 | 環境影響評價師 | 環保工程師 城市規劃師 | 公路監理師 | 公路造價師 | 安全評價師 | 電氣工程師 | 注冊測繪師 | 注冊計量師 |
|
![]() |
繽紛校園 | 實用文檔 | 英語學習 | 作文大全 | 求職招聘 | 論文下載 | 訪談 | 游戲 |
1.1.1.1.5 棧類Stack
Stack類是Vector類的子類。它向用戶提供了堆棧這種高級的數據結構。棧的基本特性就是先進后出。即先放入棧中的元素將后被推出。Stack類中提供了相應方法完成棧的有關操作。
基本方法:
public Object push(Object Hem)
將Hem壓入棧中,Hem可以是任何類的對象。
public Object pop()
彈出一個對象。
public Object peek()
返回棧頂元素,但不彈出此元素。
public int search(Object obj)
搜索對象obj,返回它所處的位置。
public boolean empty()
判別棧是否為空。
例1.4 StackApp.java使用了上面的各種方法。
例1.4 StackApp.java。
import java.lang.*;
import java.util.*;
public class StackApp{
public static void main(String args[]){
Stack sta=new Stack();
sta.push("Apple");
sta.push("banana");
sta.push("Cherry");
//壓入的為字符串對象
sta.push(new Integer(2));
//壓入的為Integer的對象,值為2
sta.push(new Float(3.5));
//壓入的為Float的對象,值為3.5
System.out.println("The stack is,"+sta);
//對應棧sta
System.out.println("The top of stack is:"+sta.peek());
//對應棧頂元素,但不將此元素彈出
System.out.println("The position of object Cherry is:"
+sta.search("cherry"));
//打印對象Cherry所處的位置
System.out.print("Pop the element of the stack:");
while(!sta.empty())
System.out.print(sta.pop()+" ");
System.out.println();
//將棧中的元素依次彈出并打印。與第一次打印的sta的結果比較,可看出棧
//先進后出的特點
}
}
運行結果(略)
1.1.1.1.6 哈希表類Hashtable
哈希表是一種重要的存儲方式,也是一種常見的檢索方法。其基本思想是將關系碼的值作為自變量,通過一定的函數關系計算出對應的函數值,把這個數值解釋為結點的存儲地址,將結點存入計算得到存儲地址所對應的存儲單元。檢索時采用檢索關鍵碼的方法。現在哈希表有一套完整的算法來進行插入、刪除和解決沖突。在Java中哈希表用于存儲對象,實現快速檢索。
Java.util.Hashtable提供了種方法讓用戶使用哈希表,而不需要考慮其哈希表真正如何工作。
哈希表類中提供了三種構造方法,分別是:
public Hashtable()
public Hashtable(int initialcapacity)
public Hashtable(int initialCapacity,float loadFactor)
參數initialCapacity是Hashtable的初始容量,它的值應大于0。loadFactor又稱裝載因子,是一個0.0到0.1之間的float型的浮點數。它是一個百分比,表明了哈希表何時需要擴充,例如,有一哈希表,容量為100,而裝載因子為0.9,那么當哈希表90%的容量已被使用時,此哈希表會自動擴充成一個更大的哈希表。如果用戶不賦這些參數,系統會自動進行處理,而不需要用戶操心。
Hashtable提供了基本的插入、檢索等方法。
■插入
public synchronized void put(Object key,Object value)
給對象value設定一關鍵字key,并將其加到Hashtable中。若此關鍵字已經存在,則將此關鍵字對應的舊對象更新為新的對象Value。這表明在哈希表中相同的關鍵字不可能對應不同的對象(從哈希表的基本思想來看,這也是顯而易見的)。
■檢索
public synchronized Object get(Object key)
根據給定關鍵字key獲取相對應的對象。
public synchronized boolean containsKey(Object key)
判斷哈希表中是否包含關鍵字key。
public synchronized boolean contains(Object value)
判斷value是否是哈希表中的一個元素。
■刪除
public synchronized object remove(object key)
從哈希表中刪除關鍵字key所對應的對象。
public synchronized void clear()
清除哈希表
另外,Hashtalbe還提供方法獲取相對應的枚舉集合:
public synchronized Enumeration keys()
返回關鍵字對應的枚舉對象。
public synchronized Enumeration elements()
返回元素對應的枚舉對象。
例1.5 Hashtable.java給出了使用Hashtable的例子。
例1.5 Hashtalbe.java。
//import java.lang.*;
import java.util.Hashtable;
import java.util.Enumeration;
public class HashApp{
public static void main(String args[]){
Hashtable hash=new Hashtable(2,(float)0.8);
//創建了一個哈希表的對象hash,初始容量為2,裝載因子為0.8
hash.put("Jiangsu","Nanjing");
//將字符串對象“Jiangsu”給定一關鍵字“Nanjing”,并將它加入hash
hash.put("Beijing","Beijing");
hash.put("Zhejiang","Hangzhou");
System.out.println("The hashtable hash1 is: "+hash);
System.out.println("The size of this hash table is "+hash.size());
//打印hash的內容和大小
Enumeration enum1=hash.elements();
System.out.print("The element of hash is: ");
while(enum1.hasMoreElements())
System.out.print(enum1.nextElement()+" ");
System.out.println();
//依次打印hash中的內容
if(hash.containsKey("Jiangsu"))
System.out.println("The capatial of Jiangsu is "+hash.get("Jiangsu"));
hash.remove("Beijing");
//刪除關鍵字Beijing對應對象
System.out.println("The hashtable hash2 is: "+hash);
System.out.println("The size of this hash table is "+hash.size());
}
}
運行結果:
The hashtable hash1 is: {Beijing=Beijing, Zhejiang=Hangzhou, Jiangsu=Nanjing}
The size of this hash table is 3
The element of hash is: Beijing Hangzhou Nanjing
The capatial of Jiangsu is Nanjing
The hashtable hash2 is: {Zhejiang=Hangzhou, Jiangsu=Nanjing}
The size of this hash table is 2
Hashtable是Dictionary(字典)類的子類。在字典類中就把關鍵字對應到數據值。字典類是一個抽象類。在java.util中還有一個類Properties,它是Hashtable的子類。用它可以進行與對象屬性相關的操作。
相關推薦:2010年9月計算機等級考試試題及答案解析專題北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內蒙古 |