2013-03-01 41 views
1

我需要转换:列表和地图

List<Map>([{1,2},{2,3}]) 

要:

List<List>([[1,2],[2,3]]) 

谁能帮我用例如这个......

感谢

回答

0

我会建议制作一个特定对象的列表,而不是一个原始列表,其中get(0)返回t他密钥和get(1)值如下:

List<List<Pair>> convert(List<Map<Integer,Integer> mapList){ 
    List<List<Pair>> listOfList = new ArrayList<List<Pair>>(); 
    for(Map<Integer,Integer> map:mapList){ 
     List<Pair> list = new ArrayList<Pair>(); 
     for(Entry<Integer,Integer> e:map.entrySet()){ 
      list.add(Pair(e.getKey(),e.getValue()); 
     } 
     listOfList.add(list); 
    } 
    return listOfList; 
} 

class Pair{ 
    Integer first; 
    Integer second; 
    //constructor 
} 
0

你可以试试下面的代码:

import java.util.*; 
class ListOfMapToListOfList 
{ 
    public static List<List> toList(List<Map<Integer,Integer>> lList)//method to convert List<Map> to List<List> 
    { 
     List<List> list = new ArrayList<List>(); 
     for (int i = 0 ; i < lList.size() ; i++) 
     { 
      Map<Integer,Integer> map = lList.get(i); 
      List<Integer> aList = new ArrayList<Integer>(); 
      Set<Integer> keySet = map.keySet(); 
      for (Integer key : keySet) 
      { 
       aList.add(key); 
       aList.add(map.get(key)); 
      } 
      list.add(aList); 
     } 
     return list; 
    } 
    public static void main(String[] args) //main body 
    { 
     List<Map<Integer,Integer>> list1 = new ArrayList<Map<Integer,Integer>>(); 
     Map<Integer,Integer> map1 = new HashMap<Integer,Integer>(); 
     map1.put(1,2); 
     Map<Integer,Integer> map2 = new HashMap<Integer,Integer>(); 
     map2.put(1,2); 
     list1.add(map1);list1.add(map2); 
     System.out.println(list1); 
     System.out.println(toList(list1));//Conversion is done here..and out put is shown. 
    } 
}