2010-02-15 11 views

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++; 
} 
+0

Artık bir akış oluşturucu oluşturabilir miyiz? –

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şturabilir
HashMap<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!