- ベストアンサー
javaのHashMapなどについて
1つのHashMapの中に下記の物を格納したいのですが可能ですか? HashMap<String, HashMap<String, String>> HashMap<String, ArrayList<String>>
- みんなの回答 (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>>())); 型安全性は(あ)より高いと思われますが,取り出し時にはやはりなんらかの型キャストが必要になります。