java是一種非常完善的程式設計語言,它擁有非常安全的文法定義、完全物件導向的編程思想,更難能可貴的是它還擁有非常強大的API。今天,我們就來瞭解一下java中預定義的資料結構。
提起資料結構有些人就有一種恐怖的聯想。確實,對複雜的資料結構進行一些操作是很令人頭痛的,我自己也對它有一些望而生畏。但是在java中對資料結構的操作是很方便的。因為在java中不但把常用的資料結構都定義好了,而且連各種操作都定義成了可以直接調用的方法。
java所有的預定義資料結構都放在util包中,在代碼中輸入import java.util.*;這樣就能夠使用資料結構了。
下面我們先來介紹一下Vector類。Vector有的書中將它翻譯成“向量”,在後面我們將一直這樣稱呼它。向量實際上是一個動態數組,它可以動態添加、刪除成員。請看下面的例子:
import java.util.*;
public class UseVector extends Vector{
public UseVector() {
addElement("Tom");
addElement("Jim");
addElement("Jack");
}
public Object get(int index){
return super.get(index);
}
public static void main(String []args){
System.out.print(new UseVector().get(1));
}
}
這段例子輸出是:
Jim
在這裡我們要注意一點向向量中新增成員是以Object儲存的,所以我們取出元素時要強制轉換為原來的類型,應該這樣寫:
(String)new UseVector().get(1);
但是在上面我們只是要輸出字串,所以並沒有明確的寫出,其實它是被隱式的轉換成了字串。
下面我們再看一個例子:
import java.util.*;
public class UseVector extends Vector{
public UseVector() {
addElement(new Integer(2));
addElement(new Integer(4));
addElement(new Integer(1));
}
public Object get(int index){
return super.get(index);
}
public static void main(String []args){
Vector v=new UseVector();
Collections.sort(v);
for(int i =0;i<3;i++)
System.out.print(v.get(i));
}
}
我們看到在添加元素時我們並不是直接添加數字,而是用封裝類Integer來添加,這是因為元素都是以Object來儲存的,所以我們不能用基礎資料型別 (Elementary Data Type)。在後面我們用了一句Collections.sort(v);這是個靜態方法它的作用是將v這個向量排序。大家可以看到,最後的結果是124,這說明排序成功了。
下面我們來說一下Hashtable,這個大家一定很熟悉了“雜湊表”,我們用一個例子來簡單說一下它的用法:
import java.util.*;
public class Hash {
public static void main(String args[]){
Hashtable h=new Hashtable();
h.put("first",new Integer(1));
h.put("second",new Integer(2));
h.put("third",new Integer(3));
Enumeration ek=h.keys();
while(ek.hasMoreElements())
System.out.println(ek.nextElement());
}
}
雜湊表在儲存時每個元素有一個key和一個value,我們可以根據key來讀取value,並且key和value也都是一個集合。我們在上面的例子中遍曆了key集合,在這個例子中我們用到了Enumeration,這是一個介面Hashtable的keys方法返回一個實現了Enumeration的集合,Enumeration有兩個方法hasMoreElements和nextElement,前者是判斷是否還有更多元素,後者返回下一個元素。
總結:本文介紹了Vector和Hashtable的用法,並且對排序和遍曆進行了簡單的說明。在下一篇中我將繼續介紹java中的資料結構。