亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

ArrayList 或單個 String 之間的操作性能

ArrayList 或單個 String 之間的操作性能

LEATH 2021-07-16 14:00:36
性能方面,使用ArrayLists 存儲值列表更好還是使用a String(使用 concat/+)更好?直覺上,我認為Strings 會表現得更好,因為它可能比 ArrayLists 使用更少的開銷,但我無法在網上找到任何東西。此外,條目不會太大(~10)。
查看完整描述

3 回答

?
三國紛爭

TA貢獻1804條經驗 獲得超7個贊

ArrayList 操作

您可以從O(1) 中的an中獲取一個值并ArrayList在 O(1) 中添加一個值。此外,ArrayList已經內置了可幫助您檢索和添加元素的操作。

字符串操作

Concatenation:使用 concat 和 slice 操作,結果會更糟。字符串粗略地說是字符數組。例如,"Hello" + "Stack" 可以表示為 array['H', 'e', 'l', 'l', 'o']和 array ['S', 't', 'a', 'c', 'k']?,F在,如果要連接這兩個String,則必須組合兩個數組的所有元素。它會給你一個長度為 10 的數組。因此,連接 - 或創建你的新字符數組 - 是O(n + m).

最糟糕的是,如果您連接 n String,您的復雜度將為O(n^2)。

拆分:拆分字符串的復雜度通常為O(N)或更多。這取決于您將為拆分操作提供的正則表達式。

操作String通常不那么可讀,并且很難調試。

長話短說

AnArrayList通常比使用 操作更好String。但一切都取決于您的用例。


查看完整回答
反對 回復 2021-07-29
?
飲歌長嘯

TA貢獻1951條經驗 獲得超3個贊

只需使用 ArrayList,它存儲對您的對象值的引用,并且引用一點也不大,這就是使用引用的重點。我一直想知道為什么要將值存儲在 String 中……這很奇怪。ArrayList 存儲值并獲取它們足夠快,并且 String 實現,內部也使用數組...所以...使用 ArrayList。


查看完整回答
反對 回復 2021-07-29
  • 3 回答
  • 0 關注
  • 173 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號