整数、文字列などの値が異なるタイプのマップが必要です。Javaの問題は、ここではプリミティブがObject
ではないことです。これはハイブリッド辞書を持つことができない可能性があることを示しています。私はこれを確認したい。さまざまなデータ型の値を受け入れる辞書がありますか?
答えて
autoboxingを利用でき、intの代わりにInteger
などを使用できます。
対応タイプ(Integer
、Double
、Bool
、...)は、標準Map<Object, Whatever>
を使用し、それを任意のものを投げることができるように、オブジェクトを継承します。
あなたはちょうどMap<String, Object>
(またはあなたのキータイプが何であれ)がほしいと思うように聞こえます。
プリミティブ値は適切に箱詰めされます値とVHS版それを取得するために、あなたは特定のラッパー型に言及していることを
Map<String, Object> map = new HashMap<String, Object>();
map.put("int", 20);
map.put("long", 100L);
// etc
注:
// Explicit unboxing
int x = (int) (Integer) map.get("int");
// Implicit unboxing
int y = (Integer) map.get("int");
// USing a method from Number instead
int z = ((Integer) map.get("int")).intValue();
おばあさん、あなたは本当に寝ない。私は同じことをポストしようとしていた。 :) –
数字の別のオプションは、Map
@Peter Lawreyです。OPでは、String型の値も必要です。番号は適格ではありません。 –
あなたはすることができますint
の代わりにInteger
を使用してください。
プリミティブをJavaのMap
に配置すると、オートボックスがオブジェクト形式になります。彼らは自動箱入りInteger
になりますよう
Map<Integer, String> myMap = new HashMap<Integer, String>();
は、あなたが、タイプint
のプリミティブを使用することができます。たとえば、Map
として定義され、あなたがしている場合。あなたの元の質問については
、などMap
定義:あなたは、マップ内の任意のJavaオブジェクトを置くことができるはず
// using Integer for key type, can be something else
Map<Integer, Object> myMap = new HashMap<Integer, Object>();
を。
マップ**は**インタフェースなので、 'new Map
@The Elite Gentleman - 申し訳ありませんが、タイプミス –
- 1. アンドロイドに辞書データ型がありますか?
- 2. 辞書内のリストにさまざまな文字列値を追加する
- 3. 複数の型を受け入れるC#関数を書くより良い方法はありますか?
- 4. 同じファイルのrequest.getInputStreamでさまざまな長さを受け取ります
- 5. IOS 5には辞書型コレクションがありますか?
- 6. VBSのQTPバージョンに辞書の辞書がありますか?
- 7. さまざまな辞書で距離を編集
- 8. IFを書くさまざまな方法の違いはありますか?
- 9. PayPalエクスプレスチェックアウトボタン - さまざまなバリエーションや色がありますか?
- 10. ポストグルの受け入れ/プロンプトはありますか?
- 11. さまざまなデータ型を返す関数
- 12. 辞書に含まれる辞書の値を変更する
- 13. 入力のデータ型を動的に受け入れる
- 14. ユーザ定義のデータ型を辞書に入れる方法
- 15. 同じ関数引数は異なるデータ型を受け入れることができますか?
- 16. さまざまなブラウザとさまざまなバージョン間で機能をテストするツールはありますか?
- 17. 入れ子になっている辞書の値をチェックしますか?
- 18. なぜ値型を互いにキャストできたら、ある値型の辞書を別の値型の辞書にキャストできないのですか?
- 19. xmlrpclib:辞書キーは文字列型エラーである必要があります
- 20. ラベルの入ったタプルにたくさんの辞書を入れる必要があります
- 21. データ型カードを受け入れ、ブール値を返す関数でcase式を作成できますか?
- 22. データ型を列名に入れる必要がありますか?
- 23. ServerSocket受け入れがブロックされ続けます
- 24. さまざまな言語で書かれたプログラム間のデータ交換
- 25. jquery UIで次のボタンをクリックするとさまざまな入力値が送信されます
- 26. 辞書オブジェクトのキー値の一部だけを見つける方法はありますか?
- 27. HTMLページ内のさまざまなデータ型を検出する方法は?
- 28. UIWebViewは通常のNSStringsを受け入れますが、オブジェクトからのNSStringは受け入れません。
- 29. Railsコントローラはクロスドメイン投稿を受け入れる必要があります
- 30. ListBoxを辞書から挿入して、値とキーを別々に取得する必要があります
も参照してください。http://stackoverflow.com/questions/2001755/using-int-as-a-type-parameter-for-java-util-dictionary – Fortega
コメントのためにデザインをより多く共有したいと思うかもしれません。私の経験では、マップでさまざまなタイプの値を使用することは、最適設計よりも劣っていることがよくあります。 –
私はツリーを作成することができるJSONデシリアライザを、指定されたターゲットクラスに変換するのではなく、メッセージに基づいて作成したいと考えています。だから辞書(ディクショナリまたは名前がどんなものであれ)をマップするか、Jon Skeetのようにリスト