16

今まで対処する必要のなかった問題に遭遇しました。基本的に特定の行に格納されているデータを変換する Java でデータベースのパッチを作成しています。これを行うために、どの値が何になるかを示す変換テーブルがあります。

例、「RC」、「AC」、「GH」のいずれかを読み取った場合 -> 値を「T1」に更新します。(これらは単なるランダムな例であり、基本的にはある文字列を別の文字列に変換しています。)

これらの変換を保存する良い方法が必要です。私はハッシュマップを考えていました: KEY,VALUE: (RC,T1) (AC,T1) (GH,T1) などなど。

今では、これらの数十と数十があります。パッチの初期化時にこのハッシュマップを設定する良いクリーンな方法は何ですか?

4

4 に答える 4

35

HashMapのセットアップ中に初期化を行います

例えば

private static final Map<String, String> m = new HashMap<String, String>() {{
    put("RC", "T1");
    put("AC", "T1");
}};

次に、コード内ですべてが一緒に設定されていることを確認します。

@Nambariは、おそらく文字列ではなくリストとして値を持っているので、良い点だと思います。ただし、これによりキーと値が交換されます。

例えば

 private static final Map<String, List<String>> m = new HashMap<String, List<String>>() {{
    put("T1", Arrays.asList("RC", "AC");
}};
于 2012-09-06T18:32:51.440 に答える
0

別の方法として、リストRC,AC,GHを値として、T1 をハッシュマップのキーとして、この方法でマップ内のエントリ数を減らすことができます。

于 2012-09-06T18:30:30.867 に答える
0

Apache Commons からPropertiesConfigurationを使用できます。

value には値区切り文字を含めることができ、トークンのリストとして解釈されます。デフォルト値の区切り文字はコンマ「,」です。したがって、次のプロパティ定義

key = This property, has multiple, values
于 2012-09-06T18:55:06.673 に答える