从ArrayList <String>矩阵创建制表符分隔的.txt表

Chr*_*isK 1 java performance arraylist tab-delimited

我目前正在从ArrayList<String>Java中的矩阵创建一个用于Excel的制表符分隔表.

矩阵是a List<List<String>,目前我将添加"\t"到矩阵中的每个String和"\n"每行的最后一个元素.我用for循环来做到这一点.

对于1500 x 3000矩阵,此过程需要花费大量时间(120秒).

有什么更好的方法来解决这个问题,以减少时间?

小智 5

不知道你的矩阵是哪种方式,但我可以建立这样的东西.不要在这里看到任何明显的开销.

private final List<List<String>> matrix;
private final String SEPARATOR = "\t";
private final String END_OF_LINE = "\n";

public TSVFormatter(List<List<String>> matrix) {
    this.matrix = matrix;
}

public String doParse() {
    StringBuilder sb = new StringBuilder();
    for (int i = 0; i < matrix.size(); i++) {
        for (int o = 0; o < matrix.get(i).size(); o++) {
            sb.append(matrix.get(i).get(o));
            if (o <( matrix.get(i).size()-1))
                sb.append(SEPARATOR);
            else
                sb.append(END_OF_LINE);
        }
    }
    return sb.toString();
}
Run Code Online (Sandbox Code Playgroud)