在java编程中列出和映射

时间:2013-03-01 20:21:49

标签: list map

我需要转换:

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

要:

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

任何人都可以帮我解决这个问题......

由于

2 个答案:

答案 0 :(得分: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  
}  

答案 1 :(得分: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.
    }
}