Ich muss eine HashMap<String, Object>
in ein Array konvertieren; Könnte mir jemand zeigen, wie es gemacht wird?Java: wie man HashMap <String, Object> in Array konvertiert
Antwort
hashMap.keySet().toArray(); // returns an array of keys
hashMap.values().toArray(); // returns an array of values
bearbeiten
zu beachten, dass die Reihenfolge der beiden Arrays nicht die gleiche, Antwort für einen besseren Ansatz für die Iteration oxbow_lakes See sein kann, wenn das Paar Schlüssel/Werte benötigt werden.
Tatsächlich bietet dieser Code keine Garantie dafür, dass hashMap.keySet() .toArray() [0] der ursprüngliche Schlüssel für hashMap.values () .toArray() [0] aus der ursprünglichen Map ist. Also das ist extrem * gefährlich * – CrackerJack9
@ CrackerJack9 kannst du das erklären? –
Die Schlüssel entsprechen nicht ihren Werten über die beiden Arrays. –
Wenn Sie die Schlüssel und Werte möchten, können Sie immer das tun über die entrySet
:
hashMap.entrySet().toArray(); // returns a Map.Entry<K,V>[]
Von jedem Eintrag können Sie (natürlich) erhalten sowohl der Schlüssel und Wert über die getKey
und getValue
Methoden
funktioniert 2017 nicht .. .. – OhadR
@OhadR Es funktioniert wirklich – Midnightas
? Ich arbeite auf Java 8? – OhadR
Map<String, String> map = new HashMap<String, String>();
map.put("key1", "value1");
map.put("key2", "value2");
Object[][] twoDarray = new String[map.size()][2];
Object[] keys = map.keySet().toArray();
Object[] values = map.values().toArray();
for (int row = 0; row < twoDarray.length; row++) {
twoDarray[row][0] = keys[row];
twoDarray[row][1] = values[row];
}
for (int i = 0; i < twoDarray.length; i++) {
for (int j = 0; j < twoDarray[i].length; j++) {
System.out.println(twoDarray[i][j]);
}
}
Wenn Sie HashMap<String, SomeObject> hashMap
dann
wird ein Objekt [] zurückgeben. Wenn Sie stattdessen ein Array des Typs Someobject wollen, könnten Sie verwenden:
hashMap.values().toArray(new SomeObject[0]);
Ich denke, du meinst 'values ()' anstelle von 'keySet()' für ein Array von 'SomeObject'. –
Sie können die Leistung auch verbessern, indem Sie die Array-Größe im Voraus festlegen, anstatt 0 zu verwenden. Siehe Beispiel hier: http://stackoverflow.com/a/5061692/265877 – Alex
Um die richtige Reihenfolge für jedes Array von Schlüsseln und Werten zu gewährleisten, verwenden diese (die anderen Antworten verwenden, um einzelne Set
s, die nicht bieten Garantie in Bezug auf Bestellung.
Map<String, Object> map = new HashMap<String, Object>();
String[] keys = new String[map.size()];
Object[] values = new Object[map.size()];
int index = 0;
for (Map.Entry<String, Object> mapEntry : map.entrySet()) {
keys[index] = mapEntry.getKey();
values[index] = mapEntry.getValue();
index++;
}
perfekt! Wir bekommen Schlüssel und Wert, mit Auto-Typen füllen Sie Eclipse, lange Zeit auf der Suche nach thx, thx! –
eine Alternative zu Crackerjacks Vorschlag, wenn Sie die HashMap wollen zu halten, um Sie in Erwägung ziehen könnten stattdessen eine LinkedHashMap verwenden. Soweit im bewusst es ist Funktionalität zu einem HashMap identisch, aber es ist FIFO Es behält die Reihenfolge bei, in der Elemente hinzugefügt wurden.
Sehr guter Punkt, danke für diesen Einblick, hat mir geholfen! :) – mgibson
danke für FIFO Tipp –
+1 für LinkedHashMap – CrackerJack9
Sie können dies auch versuchen.
public static String[][] getArrayFromHash(Hashtable<String,String> data){
String[][] str = null;
{
Object[] keys = data.keySet().toArray();
Object[] values = data.values().toArray();
str = new String[keys.length][values.length];
for(int i=0;i<keys.length;i++) {
str[0][i] = (String)keys[i];
str[1][i] = (String)values[i];
}
}
return str;
}
Hier verwende ich String als Rückgabetyp. Sie können es in den von Ihnen gewünschten Rückgabetyp ändern.
die Frage ist über 'HashMap()', aber Ihre Lösung ist über 'Hashtable()' ... Es gibt einige [Unterschiede] (http://stackoverflow.com/a/40878/3595288) zwischen ihnen – Choletski
In One Dimension Array zu bekommen.
String[] arr1 = new String[hashmap.size()];
String[] arr2 = new String[hashmap.size()];
Set entries = hashmap.entrySet();
Iterator entriesIterator = entries.iterator();
int i = 0;
while(entriesIterator.hasNext()){
Map.Entry mapping = (Map.Entry) entriesIterator.next();
arr1[i] = mapping.getKey().toString();
arr2[i] = mapping.getValue().toString();
i++;
}
in zwei Dimension Array Get.
String[][] arr = new String[hashmap.size()][2];
Set entries = hashmap.entrySet();
Iterator entriesIterator = entries.iterator();
int i = 0;
while(entriesIterator.hasNext()){
Map.Entry mapping = (Map.Entry) entriesIterator.next();
arr[i][0] = mapping.getKey().toString();
arr[i][1] = mapping.getValue().toString();
i++;
}
habe ich fast die gleiche wie @kmccoy, sondern eine von keySet()
habe ich diesen
hashMap.values().toArray(new MyObject[0]);
@SuppressWarnings("unchecked")
public static <E,T> E[] hashMapKeysToArray(HashMap<E,T> map)
{
int s;
if(map == null || (s = map.size())<1)
return null;
E[] temp;
E typeHelper;
try
{
Iterator<Entry<E, T>> iterator = map.entrySet().iterator();
Entry<E, T> iK = iterator.next();
typeHelper = iK.getKey();
Object o = Array.newInstance(typeHelper.getClass(), s);
temp = (E[]) o;
int index = 0;
for (Map.Entry<E,T> mapEntry : map.entrySet())
{
temp[index++] = mapEntry.getKey();
}
}
catch (Exception e)
{
return null;
}
return temp;
}
//--------------------------------------------------------
@SuppressWarnings("unchecked")
public static <E,T> T[] hashMapValuesToArray(HashMap<E,T> map)
{
int s;
if(map == null || (s = map.size())<1)
return null;
T[] temp;
T typeHelper;
try
{
Iterator<Entry<E, T>> iterator = map.entrySet().iterator();
Entry<E, T> iK = iterator.next();
typeHelper = iK.getValue();
Object o = Array.newInstance(typeHelper.getClass(), s);
temp = (T[]) o;
int index = 0;
for (Map.Entry<E,T> mapEntry : map.entrySet())
{
temp[index++] = mapEntry.getValue();
}
}
catch (Exception e)
{return null;}
return temp;
}
- 1. Wie konvertiert man alle Java-Systemeigenschaften zu HashMap <String, String>?
- 2. Wie konvertiert man String in String Array in Java?
- 3. Wie konvertiert man String-Array zu enum-Array in Java
- 4. Wie konvertiert man HashMap zu json Array in Android?
- 5. Java: Wie konvertiert man eine Liste <?> in eine Map <String,?>
- 6. Verwenden von String Array in HashMap, Java
- 7. Wie konvertiert man Array von Byte zu String in Java?
- 8. Wie konvertiert man String in String [] in Java?
- 9. Wie man httppotifiedfilebase in String-Array konvertiert
- 10. statisches 2D-String-Array in HashMap konvertieren
- 11. Wie konvertiert man Java String in byte []?
- 12. Wie konvertiert man RDD [(String, String)] in RDD [Array [String]]?
- 13. Wie konvertiert man NSSet zu [String] Array?
- 14. Wie konvertiert man die Liste <int> in string []?
- 15. Wie sortiere ich List <HashMap <String, String >> ls in Java?
- 16. Arraylist <HashMap <String, String >> zu String []
- 17. Wie String in HashMap in Java konvertieren
- 18. Wie konvertiert man String-Array zu Variant-Array - Excel VBA
- 19. Wie konvertiert man String in Array in PHP
- 20. Get Arraylist <HashMap <String, String >> Werte
- 21. Wie konvertiert man einen String in CharSequence?
- 22. Wie konvertiert man org.jdom.Document in String
- 23. Wie konvertiert man ein String-Array in ein Byte-Array? (Java)
- 24. Wie konvertiert man Byte-Array in Hex-Format in Java
- 25. Wie konvertiert man Vektor in Java in String?
- 26. Wie konvertiert man den DataInputStream in den String in Java?
- 27. Wie konvertiert man Byte-Array zu HexString in Java?
- 28. PHP konvertiert String in Array
- 29. Wie konvertiert man die Liste <char> in die Liste <string> in C#?
- 30. Wie konvertiert man UTF8 String in Byte Array?
Sie die Schlüssel wollen, sind die Werte, oder beides? – harto