list,map的问题求解决。

武小凡 2018-01-17 02:50:19

List<Map<String,Object>> ceshi = new ArrayList<>();
Map a = new HashMap<>();
Map b = new HashMap<>();
Map c = new HashMap<>();
Map d = new HashMap<>();
a.put("xingbie", "男");
a.put("ceshizhi", "100");
b.put("xingbie", "男");
b.put("ceshizhi", "110");
c.put("xingbie", "女");
c.put("ceshizhi", "90");
d.put("xingbie", "女");
d.put("ceshizhi", "98");
ceshi.add(a);
ceshi.add(b);
ceshi.add(c);
ceshi.add(d);
上面的List<map>怎么跟据每一个map的key值,将数据变成Map<String,List>的格式
Map1<男,【100,110】>
Map2<女,【90,98】>
...全文
306 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
自由自在_Yu 2018-01-17
  • 打赏
  • 举报
回复
static boolean flag = true;
	public static void main(String[] args) {
		List<Map<String, Object>> ceshi = new ArrayList<Map<String, Object>>();
		Map<String,List<Object>> maps = new HashMap<String,List<Object>>();
		Map<String, Object> a = new HashMap<String, Object>();
		Map<String, Object> b = new HashMap<String, Object>();
		Map<String, Object> c = new HashMap<String, Object>();
		Map<String, Object> d = new HashMap<String, Object>();
		a.put("xingbie", "男");
		a.put("ceshizhi", "100");
		b.put("xingbie", "男");
		b.put("ceshizhi", "110");
		c.put("xingbie", "女");
		c.put("ceshizhi", "90");
		d.put("xingbie", "女");
		d.put("ceshizhi", "98");
		ceshi.add(a);
		ceshi.add(b);
		ceshi.add(c);
		ceshi.add(d);
		getMap(ceshi.get(0),ceshi,maps);
		System.out.println(maps);
	}
	public static void getMap(Map<String, Object> map, 
			List<Map<String, Object>> list, Map<String,List<Object>> maps){		
		while(flag){
			List<Object> lists = new ArrayList<Object>();
			lists.add(map.get("ceshizhi"));
			for (int i = 1; i < list.size(); i++) {
				if(map.get("xingbie").equals(list.get(i).get("xingbie"))){
					lists.add(list.get(i).get("ceshizhi"));
				}
				maps.put((String) map.get("xingbie"), lists);
			}
			list.remove(0);
			for (int i = 0; i < list.size(); i++) {
				if(map.get("xingbie").equals(list.get(i).get("xingbie"))){
					list.remove(i);
				}
			}
			if(list.size() > 0){
				getMap(list.get(0),list,maps);
			}else{
				flag = false;
				break;
			}
		}
	}
{女=[90, 98], 男=[100, 110]}
心随念 2018-01-17
  • 打赏
  • 举报
回复
public static void main(String[] args) {
		
		List<Map<String,Object>> ceshi = new ArrayList<>();
		Map<String,Object> a = new HashMap<>();
		Map<String,Object> b = new HashMap<>();
		Map<String,Object> c = new HashMap<>();
		Map<String,Object> d = new HashMap<>();
		a.put("xingbie", "男");
		a.put("ceshizhi", "100");
        b.put("xingbie", "男");	
        b.put("ceshizhi", "110");
        c.put("xingbie", "女");	
        c.put("ceshizhi", "90");	
		d.put("xingbie", "女");
		d.put("ceshizhi", "98");
		ceshi.add(a);
		ceshi.add(b);
		ceshi.add(c);
		ceshi.add(d);
		
		Map<String, Object> myMap = new HashMap<>();
		for (Map<String, Object> map : ceshi) {
			if(myMap.containsKey(map.get("xingbie").toString())){
				@SuppressWarnings("unchecked")
				List<String> value = (List<String>) myMap.get(map.get("xingbie").toString());
				value.add(map.get("ceshizhi").toString());
				myMap.put(map.get("xingbie").toString(),value);
			}else{
				String valeu = map.get("ceshizhi").toString();
				List<String> list = new ArrayList<>();
				list.add(valeu);
				myMap.put(map.get("xingbie").toString(), list);
			}
			
			
		}
		for(Map.Entry<String, Object> map : myMap.entrySet()){
			System.out.println(map.getKey().toString()+"--->"+map.getValue().toString());
		}
		
		
		
	}
女--->[90, 98] 男--->[100, 110]
Braska 2018-01-17
  • 打赏
  • 举报
回复
public static void main(String[] args) throws Exception {

List<Map<String,Object>> ceshi = new ArrayList<>();
Map<String, List> result = Maps.newHashMap();
Map a = new HashMap<>();
Map b = new HashMap<>();
Map c = new HashMap<>();
Map d = new HashMap<>();
a.put("xingbie", "男");
a.put("ceshizhi", "100");
b.put("xingbie", "男");
b.put("ceshizhi", "110");
c.put("xingbie", "女");
c.put("ceshizhi", "90");
d.put("xingbie", "女");
d.put("ceshizhi", "98");
ceshi.add(a);
ceshi.add(b);
ceshi.add(c);
ceshi.add(d);

Lists.newArrayList(a, b, c, d).forEach(data -> {
if (result.containsKey(data.get("xingbie"))) {
result.get(data.get("xingbie")).add(data.get("ceshizhi"));
} else {
result.put(data.get("xingbie").toString(), Lists.newArrayList(data.get("ceshizhi")));
}
});

System.out.println(result);
}

50,523

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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