博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
一个list<Map>里map其中的一个字段的值相同,如何判断这个字段相同,就把这个map的其他字段存入另一个map中...
阅读量:5968 次
发布时间:2019-06-19

本文共 1373 字,大约阅读时间需要 4 分钟。

//不建议使用Map保存这些,使用实体bean更好

 

package com.rxlamo.zhidao;

 
import 
java.util.*;
 
public 
class 
Main {
 
 
    
public 
static 
void 
main(String[] args) {
 
        
List<Map<String, Object>> list = 
new 
ArrayList<>(
4
);
 
        
/*
         
* map1:{ID:4,身高:170,体重:60}
         
map2:{ID:4,年龄:20,性别:男}
         
map3:{ID:5,身高:160,体重:50}
         
map4:{ID:5,年龄:19,性别:女}
         
*/
 
        
Map<String, Object> map1 = 
new 
HashMap<>();
        
map1.put(
"ID"
4
);
        
map1.put(
"身高"
170
);
        
map1.put(
"体重"
60
);
 
        
list.add(map1);
 
        
Map<String, Object> map2 = 
new 
HashMap<>();
        
map2.put(
"ID"
4
);
        
map2.put(
"年龄"
20
);
        
map2.put(
"性别"
'男'
);
 
        
list.add(map2);
 
 
        
Map<String, Object> map3 = 
new 
HashMap<>();
        
map3.put(
"ID"
5
);
        
map3.put(
"身高"
160
);
        
map3.put(
"体重"
50
);
 
        
list.add(map3);
 
        
Map<String, Object> map4 = 
new 
HashMap<>();
        
map4.put(
"ID"
5
);
        
map4.put(
"年龄"
19
);
        
map4.put(
"性别"
'女'
);
 
        
list.add(map4);
 
        
merge(list);
 
 
        
for 
(
int 
i = 
0
; i < list.size(); i++) {
            
Map<String, Object> map = list.get(i);
            
System.out.println(map);
        
}
 
 
    
}
 
 
    
private 
static 
void 
merge(List<Map<String, Object>> list) {
 
        
for 
(
int 
i = 
0
; i < list.size(); i++) {
 
            
Map<String, Object> map = list.get(i);
 
 
            
// 从当前项的下一项开始检查
            
for 
(
int 
j = i + 
1
; j < list.size(); j++) {
 
                
Map<String, Object> childMap = list.get(j);
 
                
// ID 相等
                
if 
(map.get(
"ID"
).equals(childMap.get(
"ID"
))) {
                    
// 合并,此处需要先 remove
                    
list.remove(childMap);
                    
map.putAll(childMap);
                
}
 
 
            
}
 
 
        
}
 
    
}
 
 
}

转载于:https://www.cnblogs.com/dupengfei-summer/p/9283156.html

你可能感兴趣的文章
《R语言编程艺术》——2.5 使用all()和any()
查看>>
《Java语言导学(原书第6版)》一一1.5 问题和练习:快速入门
查看>>
200多位阿里工程师齐聚“光明顶”,双11模拟演习怎么搞?
查看>>
去年3545款恶意App遭下架
查看>>
雅虎宣布关闭旗下7个数字杂志
查看>>
骗子防不胜防,我们该如何安全上网?
查看>>
如何编写服务器文档记录
查看>>
白帽渗透测试的36条军规
查看>>
IT员工应该向谁汇报工作,CFO or CEO?
查看>>
《高性能Linux服务器构建实战》——2.1节初识Varnish
查看>>
SimpliSafe安防系统存高危漏洞:窃贼可轻易攻破
查看>>
阿里巴巴首次提出智慧建筑,技术与创新的新巅峰
查看>>
自定义Unity对象生命周期管理集成ADO.NET Entity Framework
查看>>
对于坐拥海量数据的金融企业来说,大数据治理意味着什么?
查看>>
冷眼看移动应用商店发展:再不求变只有死路一条
查看>>
希捷发布世界最薄、最快2TB硬盘:7毫米
查看>>
社交软件这样赚钱:line表情包卖了2亿多美元
查看>>
公共交通伸展城市智慧
查看>>
Gartner:2017年应用和基础设施中间件软件市场收入将突破270亿美元
查看>>
C# 创建网站 无法启动与停止的问题
查看>>