制作一个List <list <string>&gt;的字符串需要很长时间

时间:2016-11-01 17:40:23

标签: java android arraylist

我有一个包含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));

1 个答案:

答案 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