性能方面,使用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']
。现在,如果要连接这两个String
,则必须组合两个数组的所有元素。它会给你一个长度为 10 的数组。因此,连接 - 或创建你的新字符数组 - 是O(n + m)
.
最糟糕的是,如果您连接 n String
,您的复杂度将为O(n^2)
。
拆分:拆分字符串的复杂度通常为O(N)
或更多。这取决于您将为拆分操作提供的正则表达式。
操作String
通常不那么可读,并且很难调试。
长话短说
AnArrayList
通常比使用 操作更好String
。但一切都取决于您的用例。
饮歌长啸
TA贡献1951条经验 获得超3个赞
只需使用 ArrayList,它存储对您的对象值的引用,并且引用一点也不大,这就是使用引用的重点。我一直想知道为什么要将值存储在 String 中……这很奇怪。ArrayList 存储值并获取它们足够快,并且 String 实现,内部也使用数组...所以...使用 ArrayList。
添加回答
举报
0/150
提交
取消