Java 數據結構

Java工具包提供了強大的數據結構。在Java中的數據結構主要包括如下幾種接口和類:html

  • 枚舉(Enumeration)
  • 位集合(BitSet)
  • 向量(Vector)
  • 棧(Stack)
  • 字典(Dictionary)
  • 哈希表(Hashtable)
  • 屬性(Properties)

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

枚舉(Enumeration)

枚舉(Enumeration)接口雖然它自己不屬於數據結構,但它在其餘數據結構的範疇裏應用很廣。 枚舉(The Enumeration)接口定義了一種從數據結構中取回連續元素的方式。數組

例如,枚舉定義了一個叫nextElement 的方法,該方法用來獲得一個包含多元素的數據結構的下一個元素。數據結構

Java Enumeration接口
Enumeration接口中定義了一些方法,經過這些方法能夠枚舉(一次得到一個)對象集合中的元素。
這種傳統接口已被迭代器取代,雖然Enumeration 還未被遺棄,但在現代代碼中已經被不多使用了。儘管如此,它仍是使用在諸如Vector和Properties這些傳統類所定義的方法中,除此以外,還用在一些API類,而且在應用程序中也普遍被使用。 下表總結了一些Enumeration聲明的方法:
序號	方法描述
1	boolean hasMoreElements( )
 測試此枚舉是否包含更多的元素。
2	Object nextElement( )
若是此枚舉對象至少還有一個可提供的元素,則返回此枚舉的下一個元素。
實例
如下實例演示了Enumeration的使用:
實例
import java.util.Vector;
import java.util.Enumeration;
 
public class EnumerationTester {
 
   public static void main(String args[]) {
      Enumeration<String> days;
      Vector<String> dayNames = new Vector<String>();
      dayNames.add("Sunday");
      dayNames.add("Monday");
      dayNames.add("Tuesday");
      dayNames.add("Wednesday");
      dayNames.add("Thursday");
      dayNames.add("Friday");
      dayNames.add("Saturday");
      days = dayNames.elements();
      while (days.hasMoreElements()){
         System.out.println(days.nextElement()); 
      }
   }
}
以上實例編譯運行結果以下:
Sunday
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday

位集合(BitSet)

位集合類實現了一組能夠單獨設置和清除的位或標誌。框架

該類在處理一組布爾值的時候很是有用,你只須要給每一個值賦值一"位",而後對位進行適當的設置或清除,就能夠對布爾值進行操做了。工具

關於該類的更多信息,請參見位集合(BitSet)測試

向量(Vector)

向量(Vector)類和傳統數組很是類似,可是Vector的大小能根據須要動態的變化。編碼

和數組同樣,Vector對象的元素也能經過索引訪問。spa

使用Vector類最主要的好處就是在建立對象的時候沒必要給對象指定大小,它的大小會根據須要動態的變化。code

關於該類的更多信息,請參見向量(Vector)

棧(Stack)

棧(Stack)實現了一個後進先出(LIFO)的數據結構。

你能夠把棧理解爲對象的垂直分佈的棧,當你添加一個新元素時,就將新元素放在其餘元素的頂部。

當你從棧中取元素的時候,就從棧頂取一個元素。換句話說,最後進棧的元素最早被取出。

關於該類的更多信息,請參見棧(Stack)

字典(Dictionary)

字典(Dictionary) 類是一個抽象類,它定義了鍵映射到值的數據結構。

當你想要經過特定的鍵而不是整數索引來訪問數據的時候,這時候應該使用Dictionary。

因爲Dictionary類是抽象類,因此它只提供了鍵映射到值的數據結構,而沒有提供特定的實現。

關於該類的更多信息,請參見字典( Dictionary)

哈希表(Hashtable)

Hashtable類提供了一種在用戶定義鍵結構的基礎上來組織數據的手段。

例如,在地址列表的哈希表中,你能夠根據郵政編碼做爲鍵來存儲和排序數據,而不是經過人名。

哈希表鍵的具體含義徹底取決於哈希表的使用情景和它包含的數據。

關於該類的更多信息,請參見哈希表(HashTable)

屬性(Properties)

Properties 繼承於 Hashtable.Properties 類表示了一個持久的屬性集.屬性列表中每一個鍵及其對應值都是一個字符串。

Properties 類被許多Java類使用。例如,在獲取環境變量時它就做爲System.getProperties()方法的返回值。

相關文章
相關標籤/搜索