Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    come usare StringBuilder

    Supponiamo di dover creare un numero considerevole di Stringhe nel seguente modo:

    codice:
    for( int i=0; i< myObjects.lenght; i++ ) {
      anObject = myObjects[i];
      String s = anObject.getName() + "(" + anObject.getID() + ")"; 
      System.out.println(s); 
    }
    secondo voi conviene gia' usare uno StringBuilder ?

    in caso affermativo e' piu' conveniente in termini di performance creare
    un nuovo oggetto StringBuilder ad ogni iterazione del ciclo for oppure
    chiamare il metodo delete() su StringBuilder per azzerarne il contenuto
    senza allocare un nuovo oggetto?

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    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.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2012
    Messaggi
    707
    Se googli "java stringbuilder vs string" trovi molto, anche sulle performance, a partire dal primo risultato:
    http://chaoticjava.com/posts/stringbuilder-vs-string/
    oppure
    http://stackoverflow.com/questions/1...string-in-java
    Ciao.

  4. #4
    consigli molto utili
    Grazie ad entrambi

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.