Bir HashMap'i bir 2B diziye dönüştürmenin en kolay yolu nedir?Karma Haritası İkili Diziye Dönüştürme
9
A
cevap
8
HashMap map = new HashMap();
Object[][] arr = new Object[map.size()][2];
Set entries = map.entrySet();
Iterator entriesIterator = entries.iterator();
int i = 0;
while(entriesIterator.hasNext()){
Map.Entry mapping = (Map.Entry) entriesIterator.next();
arr[i][0] = mapping.getKey();
arr[i][1] = mapping.getValue();
i++;
}
5
Bu, yalnızca hem anahtar hem de değer türleri aynı olduğunda yapılabilir.
Verilen: En Harita üzerinde
String[][] array = new String[map.size()][2];
int count = 0;
for(Map.Entry<String,String> entry : map.entrySet()){
array[count][0] = entry.getKey();
array[count][1] = entry.getValue();
count++;
}
-1
Bıkmadan entrySet kullanarak ve giriş nesnesi
ile dizi kaydını doldurun: Ben bu basit döngü ile bu haritadan bir dizi oluşturabilirHashMap<String,String> map;
3
Nasıl hakkında
Object[][] array = new Object[][]{map.keySet.toArray(), map.entrySet.toArray()};
Veya, Strings
they diyelim, türleri hakkında daha spesifik olması: Set
'ın toArray
bir ipucu argüman alır böylece Düzenleme
String[][] array = new String[][]{map.keySet.toArray(new String[0]), map.entrySet.toArray(new String[0])};
: Sadece birkaç gün sonra gerçekleşen Bu iken şans eseri işe yarayabilir, genellikle olmamalıdır. Nedeni ara Set
; Her ne kadar "harita tarafından destekleniyor" olsa da, belirli bir düzende yinelemeye açık bir garanti yoktur. Böylece anahtar ve giriş dizileri aynı sırayla olmayabilir, bu kesinlikle bir felakettir!
Artık bir akış oluşturucu oluşturabilir miyiz? –