Java-Einstellung Werte aus einer Karte zu einem Set
Ich versuche, eine Methode, nimmt die erste Karte, deren Wert legt und eine zweite, leere Karte, deren Werte sind Listen und füllt die zweite Karte mit dem gleichen Schlüssel/Wert-Zuordnungen als die erste. Die 2. map wird jeder Schlüssel in die 1. Karte, aber die mit ihm verbunden ist eine Liste mit den gleichen Elementen, die in dem Set zugeordnet. Benutzen Sie die ArrayList in der Zweiten Karte. Hier ist die Methode, die ich bekam.
public static<K,E> void values(Map<K, Set<E>> ml, Map<K, List<E>> m2){
for (Map.Entry<K, Set<E>> e; e < ml.size(); ? //I am not sure what to write here: a e.hasNext() or a e.next)
//then i have to use a put method right?
m2.put(e.getKey(), new ArrayList<E>(? )) //I don't know how to get the value, would it just be the same as e.getKey() or e.value
}
Können Sie mir sagen, wie Sie dies tun? oder wenn es etwas falsch?
Danke für Eure Hilfe
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nicht 100% genau, was du meinst, aber wie wäre es damit:
2 Optionen:
Ich finde while-Schleifen sind besser für die Iteration als for-Schleifen, aber vielleicht ist es nur mich 🙂
Empfehle ich mit MultiMap für diese, wenn Sie können. Google hat eine wunderbare Schnittstelle
Multimap
. Es gibt zwei subinterfaces:SetMultimap<K, V>
entsprichtMap<K, Set<V>>
ListMultimap<K, V>
entsprichtMap<K, List<V>>
Den Schnittstellen abstrahieren viele der array/Liste Komplexität und die gewünschte Methode würde wie folgt Aussehen:
(Unnötig zu sagen Sie nicht brauchen, um eine zusätzliche Methode in den ersten Platz).
Die Schnittstelle ermöglicht die einfache Muster einfügen