同じ値に直接Javaの複数のキー

DsCpp:

同じ値を指し、いくつかのキーをする方法はありますか?
すなわち

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
トーベン:

JavaのHashMapのは、オブジェクトへの参照を格納します。2つの異なるキーで同じオブジェクトを格納する場合は、キーが同じ値を指します。

しかし、それはあなたの問題ではありません。あなたの問題は、フロート値を使用していて、フロートが不変のデータ型であることです。それが作成されたらあなたはそれの値を変更することはできません。あなたがいずれかのマップ内のコンテナそのコンテナ内のフロートや店舗を変更可能なフロートを作成したり、保存する必要が何をしたいのかを達成するために。(それは誤りがちであり、それは「自己undocumentable」であると私は決して生産コードでは、サンプルコードでそれを使用するであろうが)最もシンプルなコンテナの1つは、1つの要素の配列になります。

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

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=225792&siteId=1