E' meglio usare un solo StringBuilder.
Questo perchè, all'interno del ciclo, effettui delle concatenazioni, le quali portano alla creazione (per nulla) di diversi oggetti String. In realtà il compilatore è sufficientemente intelligente da capire che può ottimizzare quella parte, ma non sembre gli è possibile farlo.
Direi che conviene usare setLength( 0 ), così non sei obbligato a conoscere l'esatta lunghezza della sequenza di caratteri da cancellare:
codice:
StringBuilder sb = new StringBuilder();
for( int i=0; i< myObjects.lenght; i++ ) {
anObject = myObjects[i];
sb.append( anObject.getName() ).append("(").append( anObject.getID() ).append(")");
System.out.println( sb.toString() );
sb.setLength( 0 );
}
Ciao.