想知道使用它的最佳方法是什么:
StringBuilder query = new StringBuilder(" Select * from mytable t where ");
for ( Object object : objects ) {
query.append(" t.field = " + object.field ); // this one OR
query.append( object.field ); // this one?
}
不确定建议使用哪一个。
答案 0 :(得分:6)
字符串构建器要快得多,所以不建议连接超过3-4个字符串(在循环之外),并且绝对不在循环中,我建议你这样做:
for ( Object object : objects ) {
query.append(" t.field = ");
query.append( object.field );
}
答案 1 :(得分:2)
对append
的两次单独调用更好。在幕后,在字符串上使用+
会导致创建StringBuilder
来进行连接。所以,你想要:
使用+
(在动态情况下不起作用)一次性连接所有字符串,或
对于您正在构建的每个字符串,请使用明确的StringBuilder
来调用append
(不要在任何地方使用+
。)
答案 2 :(得分:1)
使用追加。但是,请注意,如果您执行相对较少的循环(例如10 - 20),那么使用StringBuilder并不重要,您可能看不到任何性能改进。