1

我需要转换:

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

至:

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

谁能帮我举个例子...

谢谢

4

2 回答 2

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.
    }
}
于 2013-03-01T21:11:48.293 回答
0

我建议制作一个特定对象的列表,而不是一个get(0)返回键和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  
}  
于 2013-03-01T20:38:49.690 回答