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

    Sommare valore double in un hash map è possibile?

    Salve ragazzi,

    ho n liste che contiene degli oggetti da e definti.

    devo mettere gli oggetti in un HashMap<String,Double>.

    Ora questo valore double è un valore che io mi calcolo.

    Il problema è questo, che come chiave io indico il nome dell' oggetto.

    Ogni lista può avere due oggetti uguali a me serve quindi sommare il valore double dei due ggetti mi spiego meglio

    Oggetto x = new Oggetto();
    Oggetto y = new Oggetto();

    x.nome="xyz";
    y.nome="xyz";


    hasmap.put(x.getNome(), 10);

    hashmapput(y.getNome(),20),

    ora l'hash map non può avere come chiave lo stesso nome quindi esso andrà a sostituire l'oggetto inserito precedentemenete ed a me sta bene solo che come valore double dovrebbe avere 30.

    E' possibile?

  2. #2
    Recuperi il valore associato a "xyz" invocando il metodo get, quindi sommi il valore restituito a quello che devi inserire, e lo immetti nella mappa.

  3. #3
    e lo so quello ci ero arrivato, pensavo esistesse qualcosa di più immediatp

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da bircastri
    e lo so quello ci ero arrivato, pensavo esistesse qualcosa di più immediatp
    Di "immediato" ci sarebbe questo (scritto al volo eh!):

    codice:
    import java.util.HashMap;
    
    public class Prova {
        public static void main(String[] args) {
            StringToDoubleAdditiveMap map = new StringToDoubleAdditiveMap();
    
            map.put("xyz", 10.0);
            map.put("xyz", 20.0);
    
            System.out.println(map.get("xyz"));    // 30.0 !
        }
    }
    
    class StringToDoubleAdditiveMap extends HashMap<String,Double> {
        public Double put(String key, Double value) {
            Double oldValue = get(key);
    
            if (value != null && oldValue != null) {
                value += oldValue;
            }
    
            super.put(key, value);
    
            return oldValue;
        }
    }
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

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.