gpt4 book ai didi

java - ArrayList 或单个 String 之间的操作性能

转载 作者:搜寻专家 更新时间:2023-11-01 01:59:55 25 4
gpt4 key购买 nike

在性能方面,使用 ArrayList 来存储值列表更好,还是使用 String(使用 concat/+)更好?直觉上,我认为 String 的性能会更好,因为它可能比 ArrayList 使用更少的开销,但我无法在网上找到任何东西。

此外,条目不会太大(~10)。

最佳答案

ArrayList 操作

您可以在 O(1) 中从 ArrayList获取一个值,并在 O(1) 中添加一个值。此外,ArrayList 已经内置了可帮助您检索和添加元素的操作。

字符串操作

连接:使用连接和切片操作时,情况会最糟糕。字符串粗略地说是字符数组。例如,"Hello"+ "Stack"可以表示为数组 ['H', 'e', 'l', 'l', 'o'] 和数组 [' S', 't', 'a', 'c', 'k']。现在,如果你想连接这两个 String,你将不得不组合两个数组的所有元素。它将为您提供一个长度为 10 的数组。因此,连接 - 或创建新的 char 数组 - 是 O(n + m) 中的操作。

最糟糕的是,如果您连接 n 个 String,您的复杂度将达到 O(n^2)

拆分:拆分字符串的复杂度通常为O(N) 或更多。这取决于您将为拆分操作提供的正则表达式。

使用 String 的操作通常可读性差,调试起来也很棘手。

长话短说

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

关于java - ArrayList 或单个 String 之间的操作性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51896947/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com