我有一个包含370个元素的List
,每个元素都是List <String>
,包含4个字符串。我这样做了一大串所有数据:
String veryBigString = "";
for (List <String> s : myList) {
for (String e : s){
veryBigString += e;
}
}
但是,这需要很长时间。有没有更快的选择?
编辑:像许多人建议的那样使用StringBuilder,我得到java.lang.OutOfMemoryError
。也许我做错了什么:
StringBuilder sb = new StringBuilder();
for (List <String> s : birdsInfoList) {
for (String e : s){
sb.append(e);
}
}
Log.i("Very big String", String.valueOf(sb));
答案 0 :(得分:1)
您应该使用StringBuilder然后使用concatenate。明智的表现要好得多。
StringBuilder sb = new StringBuilder("Hello")
.append("World");
有关此问题的详细信息,请参阅this。
来自Oracle Docs:
StringBuilder对象与String对象类似,但它们可以是 改性。在内部,这些对象被视为可变长度 包含字符序列的数组。在任何时候,长度 并且可以通过方法调用来更改序列的内容。
除非字符串构建者提供字符串,否则应始终使用字符串 简单代码方面的优势(最后参见示例程序) 本节)或更好的表现。例如,如果您需要 连接大量字符串,附加到StringBuilder 对象更有效率。
请在此处阅读:http://docs.oracle.com/javase/tutorial/java/data/buffers.html