第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

數(shù)組或列表在Java中。哪個(gè)更快?

數(shù)組或列表在Java中。哪個(gè)更快?

喵喵時(shí)光機(jī) 2019-06-20 16:25:49
數(shù)組或列表在Java中。哪個(gè)更快?我必須將數(shù)千個(gè)字符串保存在內(nèi)存中,才能在Java中進(jìn)行串行訪問(wèn)。我應(yīng)該將它們存儲(chǔ)在數(shù)組中,還是應(yīng)該使用某種列表?由于數(shù)組將所有數(shù)據(jù)保存在一個(gè)連續(xù)的內(nèi)存塊中(與列表不同),使用數(shù)組存儲(chǔ)數(shù)千個(gè)字符串會(huì)導(dǎo)致問(wèn)題嗎?
查看完整描述

4 回答

?
阿波羅的戰(zhàn)車(chē)

TA貢獻(xiàn)1862條經(jīng)驗(yàn) 獲得超6個(gè)贊

我建議您使用分析器來(lái)測(cè)試哪個(gè)更快。

我個(gè)人的看法是你應(yīng)該使用列表。

我處理一個(gè)大型代碼庫(kù),之前的一組開(kāi)發(fā)人員使用數(shù)組。處處..這使得代碼變得非常不靈活。在將它的大塊更改為列表后,我們注意到速度沒(méi)有差別。


查看完整回答
反對(duì) 回復(fù) 2019-06-20
?
呼如林

TA貢獻(xiàn)1798條經(jīng)驗(yàn) 獲得超3個(gè)贊

Java的方法是,您應(yīng)該考慮哪些數(shù)據(jù)抽象化最適合你的需要。請(qǐng)記住,在Java中,列表是抽象的,而不是具體的數(shù)據(jù)類(lèi)型。應(yīng)該將字符串聲明為列表,然后使用ArrayList實(shí)現(xiàn)對(duì)其進(jìn)行初始化。

List<String> strings = new ArrayList<String>();

抽象數(shù)據(jù)類(lèi)型和具體實(shí)現(xiàn)的分離是面向?qū)ο缶幊痰囊粋€(gè)關(guān)鍵方面。

ArrayList使用數(shù)組作為基礎(chǔ)實(shí)現(xiàn)列表抽象數(shù)據(jù)類(lèi)型。訪問(wèn)速度實(shí)際上與數(shù)組相同,它的其他優(yōu)點(diǎn)是能夠向列表中添加和減去元素(盡管這是一個(gè)帶有ArrayList的O(N)操作),如果您決定稍后更改基礎(chǔ)實(shí)現(xiàn),則可以。例如,如果您意識(shí)到需要同步訪問(wèn),則可以將實(shí)現(xiàn)更改為Vectora,而無(wú)需重寫(xiě)所有代碼。

事實(shí)上,ArrayList是專(zhuān)門(mén)為在大多數(shù)情況下替換低級(jí)數(shù)組構(gòu)造而設(shè)計(jì)的。如果Java是今天設(shè)計(jì)的,那么數(shù)組完全有可能被完全排除在ArrayList構(gòu)造之外。

由于數(shù)組將所有數(shù)據(jù)保存在一個(gè)連續(xù)的內(nèi)存塊中(與列表不同),使用數(shù)組存儲(chǔ)數(shù)千個(gè)字符串會(huì)導(dǎo)致問(wèn)題嗎?

在Java中,所有集合只存儲(chǔ)對(duì)象的引用,而不存儲(chǔ)對(duì)象本身。數(shù)組和ArrayList都將在一個(gè)連續(xù)數(shù)組中存儲(chǔ)幾千個(gè)引用,因此它們本質(zhì)上是相同的。您可以認(rèn)為,在現(xiàn)代硬件上,可以隨時(shí)使用幾千個(gè)32位引用的連續(xù)塊。這并不保證您不會(huì)完全耗盡內(nèi)存,當(dāng)然,只是內(nèi)存要求的連續(xù)塊并不難完成。


查看完整回答
反對(duì) 回復(fù) 2019-06-20
?
慕田峪7331174

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超13個(gè)贊

與數(shù)組相比,您應(yīng)該更喜歡泛型類(lèi)型。正如其他人所提到的,數(shù)組是不靈活的,沒(méi)有泛型類(lèi)型的表達(dá)能力。(不過(guò),它們確實(shí)支持運(yùn)行時(shí)鍵入,但這與泛型類(lèi)型混在一起。)

但是,與往常一樣,在優(yōu)化時(shí),您應(yīng)該始終遵循以下步驟:

  • 不要優(yōu)化,直到你有一個(gè)好的,干凈的,和

    工作

    你代碼的版本。在這一步中,更改為泛型類(lèi)型很有可能是有動(dòng)機(jī)的。
  • 當(dāng)你有一個(gè)好的和干凈的版本,決定它是否足夠快。
  • 如果不夠快,

    衡量其性能

    ..這一步之所以重要,有兩個(gè)原因。如果你不測(cè)量,你就不會(huì)(1)知道你所做的任何優(yōu)化的影響,(2)知道在哪里進(jìn)行優(yōu)化。
  • 優(yōu)化代碼中最熱門(mén)的部分。
  • 再量一次。

    這和以前的測(cè)量一樣重要。如果優(yōu)化沒(méi)有改善,

    還原它

    ..記住,代碼

    無(wú)

    優(yōu)化是

    干凈,漂亮,工作。


查看完整回答
反對(duì) 回復(fù) 2019-06-20
  • 4 回答
  • 0 關(guān)注
  • 916 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)