花花_新世界
从【程序猿】到【程序员】的进化历程
posts - 60,comments - 10,views - 12万

1、背景

List对象定义形式和现有的值如下所示。

复制代码
List<Test> testList = new ArrayList<>();
[{
    "ISDEL": "",
    "ATNAM": "Z008_80_PC_4270Y153",
    "AEDTM": "20230808",
    "MATNR": "80.PC-4270"
}, {
    "ISDEL": "",
    "ATNAM": "Z008_80_PC_4270Y153",
    "AEDTM": "20230808",
    "MATNR": "80.PC-4270"
}, {
    "ISDEL": "",
    "ATNAM": "Z008_80_PC_4270Y153",
    "AEDTM": "20230808",
    "MATNR": "81.PC-4271"
}, {
    "ISDEL": "",
    "ATNAM": "Z007_80_PC_4270Y154",
    "AEDTM": "20230808",
    "MATNR": "80.PC-4270"
}]
复制代码

2、目的

如果ATNAM和MATNR都一样,就认为list中的这两条记录是一样的。

3、去重

//通过MATNR+ATNAM作为唯一标识去重

复制代码
List<Test> testListOnly = removeDuplicates(testList);
private List<Test> removeDuplicates(List<Test> testList) {
    Set<String> uniqueIdentifiers = new HashSet<>();
    List<Test> result = new ArrayList<>();
    for (Test test : testList) {
        String identifier = test.getMatnr() + test .getAtnam();
        if (!uniqueIdentifiers.contains(identifier)) {
            uniqueIdentifiers.add(identifier);
            result.add(test);
        }
    }
    return result;
}
复制代码

4、结果

复制代码
[{
    "ISDEL": "",
    "ATNAM": "Z008_80_PC_4270Y153",
    "AEDTM": "20230808",
    "MATNR": "80.PC-4270"
}, {
    "ISDEL": "",
    "ATNAM": "Z008_80_PC_4270Y153",
    "AEDTM": "20230808",
    "MATNR": "81.PC-4271"
}, {
    "ISDEL": "",
    "ATNAM": "Z007_80_PC_4270Y154",
    "AEDTM": "20230808",
    "MATNR": "80.PC-4270"
}]
复制代码

 

posted on   花花_新世界  阅读(34)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示

喜欢请打赏

扫描二维码打赏

了解更多