溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

簡(jiǎn)述Java編程語(yǔ)言對(duì)象的容納

發(fā)布時(shí)間:2020-08-27 20:27:32 來(lái)源:腳本之家 閱讀:150 作者:Core Hua 欄目:編程語(yǔ)言

如果一個(gè)程序只含有數(shù)量固定的對(duì)象,而且已知它們存在的時(shí)間,那這個(gè)程序是相當(dāng)簡(jiǎn)單的。

數(shù)組

容納對(duì)象有很多方式,數(shù)組是其中最為普遍的一種,它主要有如下兩個(gè)特點(diǎn):效率和類型。對(duì)于Java來(lái)說(shuō),為保存和訪問(wèn)一系列對(duì)象(實(shí)際是對(duì)象的句柄),最有效率的方法莫過(guò)于數(shù)組。數(shù)組實(shí)際是一個(gè)簡(jiǎn)單的線性序列,因此訪問(wèn)速度非常的快,但是它也存在一些限制,如數(shù)組的大小是固定的,并且不可以在“存在時(shí)間”內(nèi)發(fā)生改變。
對(duì)于基本數(shù)據(jù)類型構(gòu)成的數(shù)組,其運(yùn)作類型跟對(duì)象數(shù)組相似,所不同的是前者里面保存的不是對(duì)象的句柄,而是實(shí)際的數(shù)值。

集合

編程的時(shí)候,通常不知道究竟需要保存多少對(duì)象,有時(shí)甚至想用更復(fù)雜的方式來(lái)保存對(duì)象,為解決這樣的問(wèn)題,Java提供了幾種“集合類”:Vector(矢量),BitSet(位集),Stack(堆棧)以及HashTable(散列表)。

集合的缺點(diǎn):丟失了類型信息。它容納的實(shí)際上是類型為Object的對(duì)象的句柄。

枚舉器(迭代器)

用集合保存對(duì)象后再訪問(wèn),需要事先知道集合中對(duì)象的準(zhǔn)確類型,否則使用的過(guò)程中會(huì)出異常。而迭代器可以解決這個(gè)問(wèn)題。迭代器是一個(gè)對(duì)象,其作用是遍歷一系列對(duì)象,并選擇那個(gè)序列中的每個(gè)對(duì)象,同時(shí)不讓客戶程序員知道或關(guān)注那個(gè)序列的基礎(chǔ)結(jié)構(gòu)。

Java中的Enumeration就是一個(gè)典型的迭代器,主要用來(lái)干如下事情:

(1)用一個(gè)名為Elements的方法要求集合為我們提供一個(gè)Enumeration,首次調(diào)用其NextElements時(shí),這個(gè)Enumeration會(huì)返回序列中的第一個(gè)元素。

(2)用NextElements獲取下一個(gè)對(duì)象。

(3)用HasMoreElements檢查是否有更多的對(duì)象。

集合的類型:

1. Vector

Vector 類可實(shí)現(xiàn)可增長(zhǎng)的對(duì)象數(shù)組。與數(shù)組一樣,它包含可以使用整數(shù)索引進(jìn)行訪問(wèn)的組件。但是,Vector 的大小可以根據(jù)需要增大或縮小,以適應(yīng)創(chuàng)建 Vector 后進(jìn)行添加或移除項(xiàng)的操作。

2. BitSet

BitSet實(shí)際是由“二進(jìn)制位”構(gòu)成的一個(gè)Vector。如果希望高效率地保存大量“開(kāi)-關(guān)”信息,就應(yīng)使用BitSet。位set 的每個(gè)組件都有一個(gè) boolean 值。用非負(fù)的整數(shù)將 BitSet 的位編入索引。可以對(duì)每個(gè)編入索引的位進(jìn)行測(cè)試、設(shè)置或者清除。通過(guò)邏輯與、邏輯或和邏輯異或操作,可以使用一個(gè) BitSet 修改另一個(gè) BitSet 的內(nèi)容。 默認(rèn)情況下,set 中所有位的初始值都是 false。

3. Stack

Stack也稱為“后入先出”集合。Java中的Stack類繼承自Vector類,它通過(guò)五個(gè)操作對(duì)類 Vector 進(jìn)行了擴(kuò)展 ,允許將向量視為堆棧。它提供了通常的 push 和 pop 操作,以及取堆棧頂點(diǎn)的 peek 方法、測(cè)試堆棧是否為空的 empty 方法、在堆棧中查找項(xiàng)并確定到堆棧頂距離的 search 方法。

4. HashTable

哈希表是一種重要的存儲(chǔ)方式,也是一種常見(jiàn)的檢索方法。其基本思想是將關(guān)系碼的值作為自變量,通過(guò)一定的函數(shù)關(guān)系計(jì)算出對(duì)應(yīng)的函數(shù)值,把這個(gè)數(shù)值解釋為結(jié)點(diǎn)的存儲(chǔ)地址,將結(jié)點(diǎn)存入計(jì)算得到存儲(chǔ)地址所對(duì)應(yīng)的存儲(chǔ)單元。檢索時(shí)采用檢索關(guān)鍵碼的方法?,F(xiàn)在哈希表有一套完整的算法來(lái)進(jìn)行插入、刪除和解決沖突。在Java中哈希表用于存儲(chǔ)對(duì)象,實(shí)現(xiàn)快速檢索。

總結(jié)

以上所述就是本文關(guān)于Java編程中對(duì)象的容納的全部介紹,希望對(duì)大家有所幫助。

詳細(xì)實(shí)例可以參考:Java編程思想對(duì)象的容納實(shí)例詳解

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI