您好,登錄后才能下訂單哦!
如果一個程序只含有數量固定的對象,而且已知它們存在的時間,那這個程序是相當簡單的。
數組
容納對象有很多方式,數組是其中最為普遍的一種,它主要有如下兩個特點:效率和類型。對于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編程中對象的容納的全部介紹,希望對大家有所幫助。
詳細實例可以參考:Java編程思想對象的容納實例詳解
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。