Ich muss a HashMap<String, Object>
in ein Array konvertieren . Kann mir jemand zeigen, wie es geht?
java
arrays
collections
hashmap
gebrannter Zucker
quelle
quelle
Antworten:
Bearbeiten
Es sollte beachtet werden, dass die Reihenfolge beider Arrays möglicherweise nicht gleich ist. Siehe oxbow_lakes Antwort für einen besseren Ansatz für die Iteration, wenn der Paarschlüssel / die Paarwerte benötigt werden.
quelle
Set
und die Werte in a konvertiert habenCollection
. Während sie technisch in Arrays konvertiert sind (und Ihre Frage beantworten), ist das Konzept des Schlüssel-Wert-Paares verloren gegangen - weshalb dies eine sehr irreführende (und gefährliche) Antwort ist ...Wenn Sie die Schlüssel und Werte möchten, können Sie dies jederzeit über Folgendes tun
entrySet
:Von jedem Eintrag können Sie (natürlich) sowohl den Schlüssel als auch den Wert über die Methoden
getKey
undgetValue
abrufenquelle
{key, value}[]
im Gegensatz zukey[], value[]
Wenn Sie
HashMap<String, SomeObject> hashMap
dann haben:Wird eine zurückgeben
Object[]
. Wenn Sie stattdessen ein Array des Typs möchtenSomeObject
, können Sie Folgendes verwenden:quelle
values()
stattkeySet()
für eine Reihe vonSomeObject
.Verwenden Sie diese Option, um die richtige Reihenfolge für jedes Array von Schlüsseln und Werten zu gewährleisten (bei den anderen Antworten werden Personen verwendet,
Set
die keine Garantie für die Bestellung bieten.quelle
Eine Alternative zum Vorschlag von CrackerJacks. Wenn Sie möchten, dass die HashMap die Reihenfolge beibehält, können Sie stattdessen eine LinkedHashMap verwenden. Soweit mir bekannt ist, ist die Funktionalität identisch mit einer HashMap, es handelt sich jedoch um FIFO, sodass die Reihenfolge beibehalten wird, in der Elemente hinzugefügt wurden.
quelle
Ich habe fast das gleiche wie @kmccoy verwendet, aber stattdessen habe
keySet()
ich dies getanquelle
quelle
In ein eindimensionales Array gelangen.
Um in ein zweidimensionales Array zu gelangen.
quelle
Wenn Sie Java 8+ verwenden und eine zweidimensionale Version benötigen
Array
, möglicherweise für TestNG-Datenanbieter, können Sie Folgendes versuchen:Wenn Ihr
Object
sString
s ist und Sie ein benötigenString[][]
, versuchen Sie:quelle
Sie können dies auch versuchen.
Hier verwende ich String als Rückgabetyp. Sie können es in den von Ihnen gewünschten Rückgabetyp ändern.
quelle
HashMap()
aber Ihre Lösung ist ungefährHashtable()
... Es gibt einige Unterschiede zwischen ihnenquelle
quelle