2

最初のものがパラメーターで、2番目のものがその値である形式(SomeClass、SomeNumber)の単純なパラメーターと値のペアを作成したいと思います。SomeNumberは、整数、分数、負の数などにすることができます。SomeClassは、String、Color、または「SomeNumber」と組み合わせることができる任意のものにすることができます。

従業員と給与の元。(John、19.75)、(David、25.50)、(Cathy、102.50)ex for color code(Color.black、0)、(Color.blue、2)など。

それは良い考えですか?そうでない場合はなぜですか?はいの場合、Javaでそれを行うにはどうすればよいですか?

4

5 に答える 5

4

あなたが話しているのはマップです

キーを値にマップするオブジェクト。マップに重複キーを含めることはできません。各キーは、最大で 1 つの値にマップできます。

ハッシュマップを試す

Map<String,Double> myMap = new HashMap<String,Double>();
      |       |     
      |       |
SomeClass  SomeNumber

myMap.put("John", 19.75); 

SomeNumber num =  myMap.get("John");
于 2013-03-05T01:51:04.673 に答える
3

Mapこのタイプの動作を実現するには、を使用することをお勧めします。たとえば、リストする従業員の場合:

Map<String, Double> employees = new HashMap<String,Double>(); 
employees.put("John", 19.75); 
employees.put("David", 25.50); 
employees.put("Cathy", 102.50);

その後、キーを使用して要素にアクセスできます。

double salary = employees.get("John");
于 2013-03-05T01:51:27.090 に答える
2

を使用するか、クラスMap<String, Double>を作成してデータを保持できます。探している機能の範囲に基づいて、実装する代替手段を決定するのはあなた次第です。ストレージ メカニズムだけを探している場合は、クラスを使用しますが、それ以上のもの (他のメソッドなど) が必要な場合は、クラスを使用します。Map

現在、あなたはこれらの異なる「名前」と「カラー コード」のアイデアを 1 つのエンティティに統合しているようです。私はそれを控えたいと思います。マップ アプローチを使用する場合は、2 つの異なるマップを維持します。1 つは (名前、給与) のペア用で、もう 1 つはカラー コード データ用です。クラスを操作する場合は、2 つの異なるクラス (おそらく両方とも同じ基本クラスから継承) を作成して、各データ セットを保持します。無関係なものを 1 つのエンティティに結合しないでください。


関連ドキュメント:

于 2013-03-05T01:52:34.920 に答える
1

HashMap または HashTableを使用できます。違いはありますが、概念と Java ユーティリティの両方を使用して、辞書のようなデータ構造 (キーと値のペア) を作成できます。

于 2013-03-05T01:55:22.243 に答える
0

これが良いアイデアかどうかは、それをどうするかによって異なります。Java でこれを行う最も簡単な方法の 1 つは、文字列用と 10 進値用の 2 つのフィールド (変数を非公開にする場合は getter メソッドと setter メソッド) を持つ単純なオブジェクトを作成することです。

public class MyClass {
    public String value1;
    public double value2;

    public MyClass(String v1, double v2) {
        value1 = v1;
        value2 = v2;
    }
}
于 2013-03-05T01:52:06.953 に答える