我想要将两个不同的list类型的数据何在一起,比如
想将下面ip和网络状态合入上面那个里面,有什么办法吗
谢谢,问题解决了,现在附上源码,希望帮到后面的朋友
List arrayList= new ArrayList();
public List<Map<String, Object>> selectfdbsListMaps(String fdbs) {
if (arrayList != null) {
arrayList.removeAll(arrayList);
}
Map<String, Object> kdLxbMapTow = null;
List<Map<String, Object>> kdLxbMap = this.jcIPdao.selectfdbsListMaps(fdbs);
List<Map<String, Object>> queryList = this.jcIPdao.selectAllIpList();
if (!fdbs.equals("")) {
kdLxbMapTow = this.jcIPdao.selectcstc(fdbs);
for (Map<String, Object> maps : kdLxbMap) {
maps.putAll(kdLxbMapTow);
}
arrayList.addAll(kdLxbMap);
return arrayList;
} else {
for (Map<String, Object> maps1 : queryList) {
kdLxbMapTow = this.jcIPdao.selectcstc(maps1.get("fdbs").toString());
maps1.putAll(kdLxbMapTow);
}
arrayList.addAll(queryList);
return arrayList;
}
}
//这是一个List,你是想把List中的第二个map合并到第一个map对象中,好办,加入你的List对象名为listData
Map<String,Object>newMap=new HashMap<String,Object>();
newMap=ListData.get(0);//将第一个Map直接赋给一个新的Map对象
//将第二个map的key和value值加入到newMap中
newMap.put("id",ListData.get(1).get("ip").toString());//确保ip不为null,我这里就不判断了
newMap.put("id",ListData.get(1).get("网络状态").toString());//同上
//ok,完成,此时newMap就是List集合中两个Map的合并结果
//如果你想把newMap加入到List当中并删除其他两个,按下面操作就OK了
listData=new ArrayList<Map<String,Object>>();
listData.add(newMap);
。。。感觉这数据类型很奇怪啊,如果说这两个json对应2个list,若是每个list里放1个map,那还要list作甚;每个json里的每个键值对分别放在1个map里?能够put多个数据的map表示十分憋屈。
说归这样说,如果真要合并直接用addAll或putAll,用不着手动遍历。
这种问题,直接查询API,不好吗?
SELECT e. NAME, w.auth, em.emotion_value FROM EVENT e, weibo w, weibo_emotion em WHERE e.id = 1 AND w.id IN ( SELECT weibo_id FROM weibo_event WHERE event_id = e.id ) AND em.weibo_id = w.id
http://blog.sina.com.cn/s/blog_3e8308f7010008q3.html
list list = new ArrayList();
list.addall(list1);
list.addall(list2);
谢谢
提供一个笨方法, 两个 list的model是不一样的, 所以直接add不行, 那就把第二个model输出成一样的。
获取第二个list,然后改输出。
用到 list 返回 指定项
listB.Select(u=new MapA{fbds="",lxdh="",.....,ip=u.ip ,sgqy=u.网络状态,....}).ToList();
然后 listA.add(listB);
这样试试呢, 我没调试,不知道正确与否,可以试试, 主要原理是将输出类型转为一致后再追加。