• 締切済み

ListからMapを作成 MapのValueにはListをput

すみません、どなたか教えて下さい。 あるListからMapを作成したく、同じkeyが存在する場合、valueのListへ値を追加したいですのですがConcurrentModificationExceptionエラーが返されてしまいます。エラーを返さないように変数を使い分け工夫したつもりですが。。。((1)でmapAにもaddされている!?)他に良い方法はないでしょうか? Map mapA = new TreeMap(); Map mapB = new TreeMap(); Iterator it = listA.iterator(); while (it.hasNext()) { Bean bean = (Bean)it.next(); List mapvaluelist = new ArrayList(); if (mapA.size()==0){ mapvaluelist.add(bean); mapA.put(bean.getName(),mapvaluelist); }else{ if (mapB.size()!=0){ mapA = mapB; } Set keyset = mapA.keySet(); Iterator itmap = keyset.iterator(); while (itmap.hasNext()){ String mapkey = (String)itmap.next(); if (bean.getName().equals(mapkey)){ mapvaluelist = (List)mapA.get(mapkey); mapvaluelist.add(bean); mapB.put(bean.getName(),mapvaluelist); (1) }else{ mapvaluelist.clear(); mapvaluelist.add(bean); mapB.put(bean.getName(),mapvaluelist); } } } }

みんなの回答

noname#45950
noname#45950
回答No.1

>if (mapB.size()!=0){ >mapA = mapB; >} ここがおかしいのでは?

参考URL:
http://javafaq.jp/S027.html#S027-01
user10
質問者

お礼

アドバイスありがとうございました。 Mapがよくわかっていなかったようです。もう一度勉強しなおします・・・。

すると、全ての回答が全文表示されます。
MFC-J7600CDW印刷罫線文字ずれ
このQ&Aのポイント
  • MFC-J7600CDW印刷罫線文字ずれに関するトラブルの解決方法を探しています。
  • B5・A4のプリント、コピーをすると罫線や文字がずれる問題が発生しています。
  • Windows11で有線LAN接続し、ひかり回線を使用しています。
回答を見る

専門家に質問してみよう