猿问

StringBuilder 和 ArrayList<String> 有什么区别?

在一次采访中,我想用一些子字符串构建一个新字符串。我认为这ArrayList<String>与 几乎相同StringBuilder,但面试官说StringBuilder如果我需要处理字符串,我应该总是使用。我认为在它们之间添加/删除函数的时间复杂度是相同的。


大话西游666
浏览 302回答 3
3回答

MMMHUHU

它们根本不是一回事。StringBuilder构建单个字符串,而ArrayList<String>只是 - 一个单独的字符串数组。当然,你可以连接所有的数组与字符串String.join("", list),其中第一个参数是分离器要使用,但为什么你会走这条路,而不是仅仅使用了专门做一流的正是你想要什么首先要做什么?

冉冉说

这一切都归结为内存消耗。String是一个对象,虽然ArrayList<String>持有不同的对象,但StringBuilder只持有一个。

牛魔王的故事

除非您继续需要添加到列表中的单独元素,否则您应该使用 StringBuilder。毕竟,你不能直接从列表的内容中得到一个连接的字符串:你必须把它放在一个 StringBuilder 中。但是在构建子字符串字符串的特定情况下,StringBuilder提供了允许您在String不使用 s 的情况下附加部分substring的append(CharSequence, int, int)方法:该方法是一种优化,以避免创建额外的字符串。需要说明的是,至少在我写python的时候,已经认为建一个list比较好,然后最后使用''.join(theList),基本上就是ArrayList<String>.我对 python 了解不够,不知道为什么这被认为特别好。
随时随地看视频慕课网APP

相关分类

Java
我要回答