2

値とその値に関する1つの対応する情報を格納するためのJavaでの最良の方法は何ですか?使用するのは素晴らしいかもしれませんが、ここでは単純なPOJOは少しやり過ぎだと感じています。

問題は次のとおりです。さまざまなタイプの「重み」値を含むフォームオブジェクトがあります。これらの重みの一部は、JSPページに太字で表示する必要がある場合もあれば、表示しない場合もあります。

この情報を表す1つの方法は、サイズ2の配列を使用することです。最初の値は重みで、2番目の値は「Y」または「N」で太字の状態を表します。

もう1つのオプションは、2つの値も含むリストを使用することです。または、列挙型、またはカスタムタイプのオブジェクトなどを使用します。

設計の観点から、この基本的な形式のデータを表すための最もクリーンで最も効果的な方法は何ですか?

4

4 に答える 4

3

HashMapを使用してみませんか?キーとして重みを使用し、trueまたはfalseとして値を使用します。

Map<Double, Boolean> weight = new HashMap<Double, Boolean>();
于 2012-12-21T04:44:20.410 に答える
2

重みがあれば簡単です。NOでマークしたい場合は、プリミティブダブルを取り、ネガティブにします。

boolean no = weight < 0;
boolean yes = weight > 0;
double realWeight = Math.abs(weight);
于 2012-12-21T04:56:12.207 に答える
1

CollectionsMap、このようなものを使用してください。

Map<String, String> dataMap1 = new HashMap<>();

Map<pojo, boolean> dataMap2 = new HashMap<>();
dataMap2.put(pojo1, true);
...

キーと値のペア。キーをオブジェクトとして保存し、値をそのオブジェクトに関するプロパティとして保存します。

参照:コレクションAPIマップAPI

于 2012-12-21T04:49:41.137 に答える
1

HashMapの使用を検討していますか?これにより、キー/ペアセット内の2つのデータを関連付けることができます。たとえば、重み(Double値)ごとに、太字にするかどうかを示すブール値を関連付けることができます。

HashMap formData = new HashMap<Double, Boolean>();

formData.put(0.005, true);
formData.put(0.333, true);
formData.put(1.5, false);
formData.put(0.25, true);

次のように、個々の値を取得できます。

formData.get(0.005);      // returns 'true'

または、次のようにすべての値を繰り返すことができます。

Iterator it = formData.iterator();
while (it.hasNext()) {
    Double singleForm = (Double)it.next();
    System.out.println(singleForm.getKey() + " is " + singleForm.getValue());
}

HashMapは、非常に高速軽量な標準のデータ構造です。

于 2012-12-21T04:46:24.780 に答える