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

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

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

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

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

4 回答

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

TA貢獻1862條經(jīng)驗 獲得超6個贊

我建議您使用分析器來測試哪個更快。

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

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


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

TA貢獻1798條經(jīng)驗 獲得超3個贊

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

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

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

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

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

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

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


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

TA貢獻1828條經(jīng)驗 獲得超13個贊

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

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

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

    工作

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

    衡量其性能

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

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

    還原它

    ..記住,代碼

    優(yōu)化是

    干凈,漂亮,工作。


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

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

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

公眾號

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