List 如何转换成MAP

有庙无僧风扫地 2012-03-27 02:06:42
一个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);
怎么写现在???
}
...全文
2918 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
yinguiyimingyingui 2013-06-04
  • 打赏
  • 举报
回复
sdojqy1122 2012-03-27
  • 打赏
  • 举报
回复
不客气
whlizi 2012-03-27
  • 打赏
  • 举报
回复
楼上程序写的不错,正解!
  • 打赏
  • 举报
回复
3Q sdojqy1122
sdojqy1122 2012-03-27
  • 打赏
  • 举报
回复
不好意思,刚才没刷新过来,发了两遍。。
sdojqy1122 2012-03-27
  • 打赏
  • 举报
回复

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));
}
}
//代码拉进去就能执行了,下面是运行结果



2
[1, 2, 3]
[1, 3]
sdojqy1122 2012-03-27
  • 打赏
  • 举报
回复

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


代码拉进去就能执行了。。
2
[1, 2, 3]
[1, 3]
dryZeng 2012-03-27
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 bb22110 的回复:]

List lst = map.get(s[0]);
lst.add(s[1]);
这2句有什么用呢?
[/Quote]
如果你现在要把[a,3]加入map,那么此时s[0]是a,那么,就把map中对应的键a对应的list取出来,放入3
X497347200 2012-03-27
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 bb22110 的回复:]
List lst = map.get(s[0]);
lst.add(s[1]);
这2句有什么用呢?
[/Quote]
如果map里面有以s[0]为key的list的话,就直接在list加入a[1]
X497347200 2012-03-27
  • 打赏
  • 举报
回复
不好意思 看错题,重来

HashMap<String,ArrayList> map=new HashMap<String,ArrayList>();
List<String> list;
for (int i = 0; i < list.size(); i++) {
Object[] s=list.get(i);
怎么写现在???

if(map.getKey(s[0])==null){
list=new ArrayList<String>();
list.add(s[1]);
map.put(s[0],list);
}else{
list=map.getKey(a[0]);
list.add(a[1]);
map.put(s[0],list);
}

}

  • 打赏
  • 举报
回复
List lst = map.get(s[0]);
lst.add(s[1]);
这2句有什么用呢?
dryZeng 2012-03-27
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 ldh911 的回复:]

最开始定义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.……
[/Quote]

如果这样的代码楼主都看不懂的话,建议楼主多看看java基础知识。多写写基础例子。

否则给你提供完整程序又有什么用呢,你还是看不懂。
X497347200 2012-03-27
  • 打赏
  • 举报
回复
一个list数据如下
[[a,1],[a,2],[a,3],[s,1],[s3]]
要转成 MAP 数据格式如下
[a,list1] list1={1,2,3}
[s,list2] list2={1,3}
HashMap<Integer,Object> map=new HashMap<Integer,Object>();
for (int i = 0; i < list.size(); i++) {
Object[] s=list.get(i);
怎么写现在???
map.put(i,s);//不list里面的s[0],s[1] 都有重复值 不能做key, 我就用int i当key,把object放进map
}
MiceRice 2012-03-27
  • 打赏
  • 举报
回复
基本就是完整的,除了初始化和强制类型转换。

因为不知道你list元素的结构和类型,所以也没啥必要细化了。
  • 打赏
  • 举报
回复
搞不懂 能写完整吗?
MiceRice 2012-03-27
  • 打赏
  • 举报
回复
最开始定义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]);
}




62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧