Visualizzazione dei risultati da 1 a 6 su 6

Discussione: Copiare oggetto

  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    315

    Copiare oggetto

    Salve,
    ho una struttra del tipo:

    codice:
    HashMap < String, HashMap< String, MyClass > >
    già "valorizzata" da precedente codice.
    Avrei bisogno di una copia di questa struttura per lavorarci parallelamente su tutte e due (non per riferimento sulla stessa).

    La cosa più immediata che mi viene in mente e di fare una serie di cicli e istruzioni in modo che mentre leggo la prima HashMap, valorizzo la seconda.
    Dato che la mia classe MyClass è comunque una classe con vari attributi di svariata natura (altre strutture complesse), come posso eseguire questa operazione nel modo più semplice?

    Grazie

  2. #2
    Se non sbaglio dovrebbe bastare una cosa del genere:

    Codice PHP:
    HashMap<Tipo1Tipo2originale = .... ;
    ...

    HashMap<Tipo1Tipo2clonata = new HashMap<Tipo1Tipo2>();
    clonata.putAll(originale); 
    Al mio segnale... scatenate l'inferno!

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    315
    Copia tutto, ma credo che copia i riferimenti, in quanto gli attributi della MyClass li vedo modificati in tutte e due le HashMap

  4. #4
    Ho fatto una prova...a me non li modifica. Probabilmente dipende da come è fatta MyClass
    Al mio segnale... scatenate l'inferno!

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    315
    Originariamente inviato da R@ve M@ster
    Probabilmente dipende da come è fatta MyClass
    Cosa intendi? devo fare qualcosa anche in MyClass?

  6. #6
    No, intendevo dire che probabilmente dipende dal tipo di variabili di istanza della classe MyClass. Io ho utilizzato come MyClass la seguente semplice classe:

    Codice PHP:
    public class MyClass{
        private 
    String a "a";
        private 
    String b "b";

        public 
    MyClass(String aString b) {
            
    this.a;
            
    this.b;
        }

        

        
    /**
         * @return the a
         */
        
    public String getA() {
            return 
    a;
        }

        
    /**
         * @param a the a to set
         */
        
    public void setA(String a) {
            
    this.a;
        }

        
    /**
         * @return the b
         */
        
    public String getB() {
            return 
    b;
        }

        
    /**
         * @param b the b to set
         */
        
    public void setB(String b) {
            
    this.b;
        }

    Al mio segnale... scatenate l'inferno!

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.