轉 java資料結構(一)

來源:互聯網
上載者:User

 

    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中的資料結構。

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.