2011-09-11 15 views

答えて

4

特定のマップに応じて、キーの許容タイプに制限がある可能性があるため、APIをチェックしてください。また、参照型のみを使用できますが、プリミティブ型は使用できません。だからダブルは動作しませんが、ダブルはうまくいきます。最後に、キーは、異常な動作を引き起こす可能性があるため、キーを変更できないようにすることが望ましいです。

1

doublesはプリミティブ型であるため動作しません。つまり、マップMap<double,String>を定義することはできません。ただし、Map<Double,String>を定義してからputメソッドにdouble値を使用することができます(オートボクシングのおかげで)。

equalhashcodeのメソッドがオーバーライドされない限り、同等性は参照に基づいており、これは望ましい動作ではない可能性があります。 (したがって、あなたは2つのエントリで終わるかもしれませんが、1つしか期待できません)

2

どのオブジェクトタイプでも使用できます。 しかし正しい動作を得るには、型にhashCode()とequals()関数が正しく実装されている必要があります。

ですから、doubleを使用したい場合は、代わりにDoubleを使用しているため、ボクシングの必要があり、あなたが実際にあなたがユニークである任意のObjectを使用することができるキーについてなどadd()のような機能に

0

double値を渡すことができますアンボクシングデータセットに追加します。 intまたはdoubleは使用できませんが、IntegerまたはDoubleを使用できます。キーには1つの値しかないことがあります。したがって、一意のオブジェクトが必要です。あなたは同じキーを追加する場合は二回だけで2番目の値はMap

0

に保存されます、あなたはプリミティブデータ型を使用することはできません あなたが二重ラッパークラスを使用することができます倍増使用したい場合は、オブジェクト
を使用する必要があります。あなたがいずれかを使用したい場合はintまたはlongまたはdoubleのように、あなたはそれを

文字列を表すラッパークラスを探すことができ、それはクラスなので

0

プリミティブデータ型が許可されていないオーケーで、より良いあなたは格納するクラスをラッパー地図上のあなたのデータ。 さらに、equalとhashcodeメソッドをオーバーライドしない限り、mapを使用するのはあまり役に立ちません。

関連する問題