このメソッドは、ループの中で + を使用して String
を構築していると思われます。
各々の繰り返しにおいて、String
は StringBuffer
/StringBuilder
に変換、追加され、String
へ変換されます。
各々の繰り返しで文字列が再コピーされ増大すると、繰り返しの数で二次コストの原因になる可能性があります。
明示的に、StringBuffer
(または J2SE 5.0の StringBuilder
) を使うことで、より良い性能を得られるかもしれません。
たとえば、
// This is bad String s = ""; for (int i = 0; i < field.length; ++i) { s = s + field[i]; } // This is better StringBuffer buf = new StringBuffer(); for (int i = 0; i < field.length; ++i) { buf.append(field[i]); } String s = buf.toString();