Java varias claves dirigen a los mismos valores

DsCpp:

¿Hay una manera de puntos varias claves para el mismo valor?
es decir

HashMap<String, Float> mymap = new HashMap<>();
mymap.put("hello",5f);
mymap.put("bye",5f);
~somehow point bye and hello to the same value~
mymap.put("bye", mymap.get("bye") +5f)

mymap.get("hello") == 10
Torben:

Java HashMap almacena referencias a objetos. Si almacena mismo objeto con dos llaves diferentes, las teclas se apuntan en el mismo valor.

Pero eso no es su problema. Su problema es que está utilizando valores de flotador y flotador es un tipo de dato inmutable. No se puede cambiar de valor una vez que se ha creado. Para lograr lo que quiere hacer lo necesario para crear ya sea un flotador mutable o almacenar el flotador en un recipiente y almacenar ese contenedor en el mapa. Uno de los recipientes de la mayoría simple sería un único conjunto de elementos (aunque yo sólo lo uso en un código de ejemplo, nunca en un código de producción, ya que es propenso a errores y es "auto documentables").

HashMap<String, Float[]> mymap = new HashMap<>();
Float[] val = new Float[] { 5f };
mymap.put("hello", val);
mymap.put("bye", val);
...
mymap.get("bye")[0] = mymap.get("bye")[0] + 5f;

mymap.get("hello")[0] == 10f

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=225795&siteId=1
Recomendado
Clasificación