gpt4 book ai didi

java - 编写此代码块的更有效方法是什么

转载 作者:行者123 更新时间:2023-12-01 17:01:24 25 4
gpt4 key购买 nike

我正在编写一个模块,它将根据某些输入文件生成 DDL。我正在尝试找出哪种方法更有效。

这个:

for (int i = 0; i < Common.testFields.size(); i++) {
line = "";
line += " " + Common.testFields.get(i).toString() + " ";
line += Common.dataTypes.get(i).toString();
if (i != Common.testFields.size() - 1)
line += ",";
ddl += line;
if (i != Common.testFields.size() - 1)
ddl += "\n";
}

或者这个:

for (int i = 0; i < Common.testFields.size(); i++) {
line = "";
line += " " + Common.testFields.get(i).toString() + " ";
if (i == Common.testFields.size() - 1) {
line += Common.dataTypes.get(i).toString();
ddl += line;
}
else {
line += Common.dataTypes.get(i).toString() + ",";
ddl += line + "\n";
}
}

我对 for 的执行进行了计时使用 System.currentTimeMillis() 循环,但是当我打印出耗时时,两者都打印出 1 毫秒。 Common.testFields.size()目前为 165。考虑到这两者都具有相同的复杂度 O(n) ,如果Common.testFields.size()比现在大得多,比如说 1000 倍甚至 10000 倍,如果有的话,哪一个会更快?

最佳答案

我最喜欢的“加入”模式是这样的:

StringBuilder builder = new StringBuilder();
String separator = "";

for (int i = 0; i < Common.testFields.size(); i++) {
builder.append(separator)
.append(" ")
.append(Common.testFields.get(i))
.append(" ")
.append(Common.dataTypes.get(i));

separator = ",\n";
}

String ddl = builder.append("\n").toString();

不需要特殊情况“如果最后”或“如果第一个”。

关于java - 编写此代码块的更有效方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27530383/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com