当前位置: 代码迷 >> J2SE >> List 怎么转换成MAP
  详细解决方案

List 怎么转换成MAP

热度:331   发布时间:2016-04-24 01:32:00.0
List 如何转换成MAP
一个list数据如下
[[a,1],[a,2],[a,3],[s,1],[s3]] 
要转成 MAP 数据格式如下
[a,list1] list1={1,2,3}
[s,list2] list2={1,3}
for (int i = 0; i < list.size(); i++) {
 Object[] s=list.get(i);
  怎么写现在???
}


------解决方案--------------------
最开始定义HashMap map;

for (int i = 0; i < list.size(); i++) {
Object[] s=list.get(i);
if (!map.containsKey(s[0])) {
map.put(s[0], new ArrayList());
}
List lst = map.get(s[0]);
lst.add(s[1]);
}





------解决方案--------------------
Java code
import java.util.ArrayList;import java.util.HashMap;import java.util.List;public class Test{    static List<Object[]> list= new ArrayList<Object[]>();        public static void main(String args[]){        Object a = new Object();        Object s = new Object();        Object[] o1= {a,1};        Object[] o2= {a,2};        Object[] o3= {a,3};        Object[] s1= {s,1};        Object[] s2= {s,3};        list.add(o1);list.add(o2);list.add(o3);list.add(s1);list.add(s2);        HashMap<Object,List> map = new HashMap<Object,List>();        for (int i = 0; i < list.size(); i++) {              Object[] array=list.get(i);              if(map.containsKey(array[0])){                  map.get(array[0]).add(array[1]);              }              else{                  List list= new ArrayList();                  list.add(array[1]);                  map.put(array[0],list);              }        }        System.out.println(map.size());        System.out.println(map.get(a));        System.out.println(map.get(s));    }}
  相关解决方案