0

いくつかのデータをハッシュマップに保存しています。ここで、ユーザー入力に基づいてキーに関連付けられた値を変更し、これらの方法で永続的に保存したいと思います。

より明確にするために、私は次のようなハッシュマップを持っています:

public static HashMap<String,Integer> mymap= new HashMap<String,Integer>();
mymap.put("Hi",2);
mymap.put("Hello",3);

一部のユーザーのユーザーからフィードバックを受け取り、必要に応じて、たとえば、Helloに対して4を保存します。これらの変更を将来の参照用に保存してほしい。

JavaでのReflectionAPIについて聞いたことがありますが、それが目的に役立つかどうかはわかりません。

4

3 に答える 3

1

Reflection APIを使用すると、他の方法ではアクセスできないデータ、またはコンパイル時に不明なクラスのデータを操作/アクセスできます。

ここでは、それは本当に必要ありません。必要なのはput()、要素をマップに追加することだけです。これにより、挿入したばかりのキーから古い値が「削除」され(すでに存在する場合)、その値(キー)が新しく追加された値に関連付けられます。

したがって、基本的に-あなたがする必要があるのはmyMap.put(key,newValue)、であり、(もちろんそれが正しいものであると仮定して)の実装がMap残りの面倒を見るでしょう。


プログラムの実行の間にデータを保存したい場合は、データ(マップ)をディスクに保存する必要があります。そうするために、あなたはシリアル化を使うことができます、あるいはあなたが場合 によっては使うことができるならProperties
プログラムの起動後に必ずディスクからマップをロードしてください。ロードしないと、保存した値が表示されません。

于 2012-10-16T20:25:10.933 に答える
0

と言うだけmymap.put(key,value);です。一致するキーの値を更新します。そこにない場合は、新しいエントリを挿入します。

      mymap.put("Hello",4);

たとえば、新しいキーに新しい値を挿入したくない場合はWorld、次のようなチェックを入れることができます。

      if(mymap.containsKey(key)){
         mymap.put(key,value);
      }else{
        //no existing key found
      }
于 2012-10-16T20:28:20.433 に答える
0

Preferences APIを使用すると、少量のデータをディスクに簡単に保存できます。通常、構成データを保存するために使用されます。これは、Windowsレジストリに似ています。

紹介は次のとおりです:http://docs.oracle.com/javase/1.4.2/docs/guide/lang/preferences.html

于 2012-10-16T20:38:48.983 に答える