HashMap<Key,List<Object>> aus Liste von Objekten mit gleicher Eigenschaft
Ich habe eine Liste von Objekten.
eg>
Objekt 1
groupId=1
name=name1
Objekt 2
groupId=1
name=name2
Objekt 3
groupId=1
name=name3
Objekt 4
groupId=2
name=name4
Mehrere Objekte in der Liste haben den gleichen Wert für groupId
. Ich brauche zum erstellen von Sub-Listen von Objekten mit gleichen groupId
. Wie mache ich das in Java.
Mein Erste Gedanke war die Erstellung einer HashMap<Integer,List<Object>>
aber ich bin unsicher, unbestimmte Werte groupIds
kommen , was wiederum macht mich unsicher, wie Sie die Gruppe von Objekten mit gleichen groupIds
zusammen mit groupId
als die hashmap der Schlüssel.
Wenn die Gruppen-id nicht zu ändern oder zu erhöhen in der Zukunft, ich hätte iteriert über die Liste und geschrieben aus einer switch-Anweisung zum erstellen der erforderlichen arrays.
InformationsquelleAutor Niraj Adhikari | 2015-07-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
Mit Java 8 könnten Sie die
groupingBy
Sammler:InformationsquelleAutor assylias
Habe ich es auf diese Weise. Ich verwendet
LinkedHashMap<K,V>
da hatte ich zum beibehalten der Reihenfolge der Objekte hatte ich sortiert nach Objekt priority value-Eigenschaft.InformationsquelleAutor Niraj Adhikari
Ich glaube, Sie brauchen eine Karte wie diese -
Wo die
key
imHashMap
istInteger
stellt IhregroupId
(ie. - 1, 2, 3 etc) und dievalue
(ie - name1, name2 etc) derHashMap
gespeichert amList
vonString
.Können Sie die folgenden Schritte
1. Durchlaufen Sie Ihr vier-Listen.
2. Fügen Sie jedes Element in eine
Map
Konstruktion (zB.- hiermap
), basierend auf dem Schlüssel Gruppen-id.Ich denke dieser link wäre hilfreich, in diesem Zusammenhang.
InformationsquelleAutor Razib
In Java 8 können Sie einige Filter.
Filter mithilfe von Collections API
InformationsquelleAutor Burusothman