我有以下几行代码。我的问题是应该选择哪个?
public static String convertMapToString ( Map < String, String > map )
{
StringBuilder str = new StringBuilder ( 200 ) ;
for ( Entry < String, String > entry : map.entrySet ( ) )
{
str.append ( entry.getKey() + " = " + entry.getValue() ) ;
}
return str.toString() ;
}
我应该选择以下方式,因为我怀疑在每次迭代中,上面的append语句可能会由于
+
操作而创建两个额外的字符串。public static String convertMapToString ( Map < String, String > map )
{
StringBuilder str = new StringBuilder ( 200 ) ;
for ( Entry < String, String > entry : map.entrySet ( ) )
{
str.append (entry.getKey());
str.append (" = ");
str.append (entry.getValue()) ;
}
return str.toString() ;
}
StringBuilder
将不得不循环相同数量的char
。因此,选项1似乎与选项2相同,但多了一个不必要的连接。 - Maljamstr.append(new StringBuilder(entry.getKey()).append(" = ").append(entry.getValue()).toString());
。 - Tom