私はArrayList
に以下のオブジェクトを持ちます。このオブジェクトの値は、最初の数字としてId
というものがあります。List内の値に基づいてn個のリストをマップにマージする
Iは、そのキー値IDを持つオブジェクトであるべきオブジェクトのIDであるべきMap
オブジェクトを作成する必要があります。一日の終わりに、私はそのようなマップを持っていたいと思います。
私はすでにif
文のループやたくさんのための2つでこの問題を解決してきたが、それは私には非常に醜いと思われます。
任意のクリーナーソリューションが評価されます。始まったばかりのリストを反復処理し、地図に要素を追加
ArrayList<Element> list = ...;
HashMap<Integer, List<Element>> map = new HashMap<Integer, List<Element>>();
for(Element e : list) {
ArrayList<Element> auxList;
if(map.contains(e.getId()) {
auxList = map.get(e.getId());
} else {
auxList = new ArrayList<Element>();
map.put(e.getId(), auxList);
}
auxList.add(e);
}
:
私は最初の画像を取得しません。どのようなリストについて話していますか? **最初の**要素がIDであるリストを持つことはできません。他の要素は別のものです。そして:マップはキーごとに1つの値を持ちます。ですから、本当に複数のエントリが必要な場合は、 'Map'が必要です。 –
GhostCat
@GhostCatこれは単なるイラストです。これは非常に普通のリストであり、リストに含まれるオブジェクト内の値はIdとして示されています。私たちは、これはリスト内にあるオブジェクト内の単なる値であると言います。 –
いくつかのコードを表示する必要があります。特に問題があります。これはコード作成サービスではありません。 – marstran