【发布时间】:2021-07-30 06:32:38
【问题描述】:
我有这样的情况:
public String createId(List<String> list)
{
String id="";
if(list.contains("name"))
id+="TEST VALUE NAME";
if(list.contains("age"))
id+="Test Value AGE";
.
.
. likewise many if condition
return id;
}
根据我的理解,我们应该在循环条件中使用 StringBuilder,在简单连接中使用 String。所以这里想问我应该用String还是StringBuilder?请推荐
【问题讨论】:
-
StringBuilder 是首选
-
您可以通过缩进来格式化您的代码。
-
假设这些
if语句有大量,StringBuilder会更好,但是,您还应该关注这些重复的线性搜索。 -
即使
StringBuilder比String +=更受欢迎,.contains、List和这里代码的一般结构很可能比StringBuildervs 产生更大的影响String。例如,如果您的所有条件都像这样(列表中的每个值都映射到结果字符串中的一个值),您可以在列表中循环一次,添加一个switch-case并在该循环中使用StringBuilder连接.或使用Set。在List上对contains的每次调用都必须遍历所有元素,直到找到查询的值。再说一次,不要做过早的优化。
标签: java arrays spring oop java-8