首頁 > Java > java教程 > Java程式語言中物件的容納詳解

Java程式語言中物件的容納詳解

黄舟
發布: 2017-09-19 10:05:36
原創
946 人瀏覽過

這篇文章主要對Java程式設計思想中物件的容納進行了一個總體的介紹,具有一定的參考價值,需要的朋友可以了解下。

如果一個程式只含有數量固定的對象,而且已知它們存在的時間,那麼這個程式是相當簡單的。

陣列

容納物件有很多方式,陣列是其中最普遍的一種,它主要有以下兩個特點:效率和類型。對Java來說,為保存和存取一系列物件(實際上是物件的句柄),最有效率的方法莫過於陣列。陣列實際上是一個簡單的線性序列,因此存取速度非常的快,但是它也存在一些限制,如數組的大小是固定的,並且不可以在「存在時間」內發生變化。
對於基本資料型態構成的數組,其運作類型跟物件數組相似,所不同的是前者裡面保存的不是物件的句柄,而是實際的數值。

集合

程式設計的時候,通常不知道究竟需要保存多少對象,有時甚至想用更複雜的方式來保存對象,為解決這樣的問題,Java提供了幾個「集合類別」:Vector(向量),BitSet(位元集),Stack(堆疊)以及HashTable(散列表)。

集合的缺點:遺失了型別資訊。它容納的實際上是類型為Object的物件的句柄。

枚舉器(迭代器)

#用集合保存物件後再訪問,需要事先知道集合中物件的準確類型,否則使用的過程中會出異常。而迭代器可以解決這個問題。迭代器是一個對象,其作用是遍歷一系列對象,並選擇那個序列中的每個對象,同時不讓客戶程式設計師知道或關注那個序列的基礎結構。

Java中的Enumeration就是一個典型的迭代器,主要用來幹以下事情:

(1)用一個名為Elements的方法要求集合為我們提供一個Enumeration,首次呼叫其NextElements時,這個Enumeration會傳回序列中的第一個元素。

(2)用NextElements取得下一個物件。

(3)用HasMoreElements檢查是否有更多的物件。

集合的類型:

1. Vector

Vector 類別可實現可成長的物件陣列。與陣列一樣,它包含可以使用整數索引進行存取的元件。但是,Vector 的大小可以根據需要增大或縮小,以適應建立 Vector 後進行新增或移除項目的操作。

2. BitSet

BitSet實際上是由「二進位位元」構成的一個Vector。如果希望高效率地保存大量「開-關」訊息,就應使用BitSet。位元set 的每個組件都有一個 boolean 值。用非負的整數將 BitSet 的位元編入索引。可以對每個編入索引的位元進行測試、設定或清除。透過邏輯與、邏輯或和邏輯異或操作,可以使用一個 BitSet 修改另一個 BitSet 的內容。 預設情況下,set 中所有位元的初始值都是 false。

3. Stack

Stack也稱為「後入先出」集合。 Java中的Stack類別繼承自Vector類,它透過五個操作對類別 Vector 進行了擴展 ,允許將向量視為堆疊。它提供了通常的 push 和 pop 操作,以及取堆疊頂點的 peek 方法、測試堆疊是否為空的 empty 方法、在堆疊中尋找項目並確定到堆疊頂距離的 search 方法。

4. HashTable

哈希表是一種重要的儲存方式,也是常見的檢索方法。其基本思想是將關係碼的值作為自變量,透過一定的函數關係計算出對應的函數值,把這個數值解釋為結點的儲存位址,將結點存入計算得到儲存位址所對應的儲存單元。檢索時採用檢索關鍵碼的方法。現在哈希表有一套完整的演算法來進行插入、刪除和解決衝突。在Java中哈希表用於儲存對象,實現快速檢索。

總結

#

以上是Java程式語言中物件的容納詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板