java - 制作一串 List<List<String>> 需要很长时间

标签 java android arraylist

<分区>

我有一个 List包含370个元素,每个元素都是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));

最佳答案

您应该使用 StringBuilder,然后使用连接。更好的性能明智。

StringBuilder sb = new StringBuilder("Hello")
    .append("World");

有关这方面的更多信息,您可以阅读 this .

来自 Oracle 文档:

StringBuilder objects are like String objects, except that they can be modified. Internally, these objects are treated like variable-length arrays that contain a sequence of characters. At any point, the length and content of the sequence can be changed through method invocations.

Strings should always be used unless string builders offer an advantage in terms of simpler code (see the sample program at the end of this section) or better performance. For example, if you need to concatenate a large number of strings, appending to a StringBuilder object is more efficient.

阅读此处:http://docs.oracle.com/javase/tutorial/java/data/buffers.html

关于java - 制作一串 List<List<String>> 需要很长时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40365565/

相关文章:

java - 尝试安装 zgrviewer 来查看 DOT 文件

android - 我希望我的代码在将图像保存到 android 之前使用搜索栏调整图像大小。我怎样才能做到这一点?

java - 多维数组列表java

java - 使用java中的多线程读取两个标记化文件

java - Java Try/Catch block 的基准测试

java - 如何计算 Java 中的字素簇或 "perceived"表情符号字符

android - 无法在 Android 中解析 JSonArray

android - 无法居中列小部件

java - 我是否正确序列化/反序列化?

java - int[] 到 int 不兼容类型错误