一个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)); }}