2012-06-04 109 views
0

我有一個映射,並試圖將其轉換爲2維數組。爲此,我將Map的值轉換爲列表,然後嘗試轉換爲2維數組。轉換映射到2維數組

我的代碼是

try { 
List list = new ArrayList(layoutMap.values()); 
int listSize = list.size(); 
ArrayList[][] layoutList = new ArrayList[listSize][]; 
for(int i = 0; i < listSize; i++){ 
    List sublist = (ArrayList) list.get(i); 
    int subListSize = sublist.size(); 
    layoutList[i] = new ArrayList[subListSize]; 
    for (int j = 0; j < subListSize; j++) { 
    layoutList[i][j] = (ArrayList) sublist.get(j); 
    } 
} 
} catch (Exception e) { 
log.error("@layoutMapDetails() :", e); 
} 

當我做到這一點我得到類轉換異常com.pojo.layout.LayoutDetails cannot be cast to java.util.ArrayList有什麼辦法來解決這個問題。是列表轉換爲二維數組的權利..?在這裏,layoutMap是Map<Integer, List>

+4

http://stackoverflow.com/questions/2265266/convert-hash-map-to-2d-array 檢查此鏈接 –

+0

如果使用仿製藥,這將是你想要做的更清楚得多,因爲現在還不清楚。 –

+0

偉大的bunta ....非常感謝..你節省了我的時間。 –

回答

0
final Object[][] result = new Object[map.size()][2]; 

final Iterator<?> iter = map.entrySet().iterator(); 

int ii = 0; 
while(iter.hasNext()){ 
    final Map.Entry<?, ?> mapping = (Map.Entry<?, ?>) iter.next(); 

    result[ii][0] = mapping.getKey(); 
    result[ii][1] = mapping.getValue(); 

    ii++; 
}