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)