• ベストアンサー

javaのHashMapなどについて

1つのHashMapの中に下記の物を格納したいのですが可能ですか? HashMap<String, HashMap<String, String>> HashMap<String, ArrayList<String>>

質問者が選んだベストアンサー

  • ベストアンサー
  • aton
  • ベストアンサー率47% (160/334)
回答No.1

パッと思いつくのは以下の2種類の方法です。 (あ) HashMapとArrayListの共通の上位型(この場合はObjectしかなさそう)をHashMapの値に入れる HashMap<String, Object> a = new HashMap<String, Object>(); a.put("aaa", new HashMap<String, String>()); a.put("bbb", new ArrayList<String>>()); 値にはHashMap<String, String>,ArrayList<String>以外の型も格納できるので,型安全性は低下するし,取り出し時に型キャストが必要になります。 (い) HashMapとArrayListを格納するadapterクラスを作る Class MyAdapter { private HashMap<String, String> hm; private ArrayList<String> al; (略) } HashMap<String, Object> a = new HashMap<String, MyAdapter>(); a.put("aaa", new MyAdapter(new HashMap<String,String>())); a.put("bbb", new MyAdapter(new ArrayList<String>>())); 型安全性は(あ)より高いと思われますが,取り出し時にはやはりなんらかの型キャストが必要になります。

関連するQ&A