最近在做項(xiàng)目中,一個(gè)客戶創(chuàng)建出庫單時(shí),可能會(huì)有多個(gè)訂單,通過EXCEL建單對各種情況都做了校驗(yàn);EDI的接口可能某個(gè)前輩同事??瓦特了,沒有進(jìn)行電商訂單后唯一檢驗(yàn)。這個(gè)簡單又難受的bug就給了我。
1.去重比較長度
第一部肯定判斷原來size和去重過后的size是否相同,不同則說明有相同的電商單號。
List<String> orderNoDisList = orderNoList.stream().distinct().collect(Collectors.toList());
if(orderNoList.size() != orderNoDisList.size()){
logger.error("The E-Commerce Order number is the same");
}
2.相同的單號返回提醒
有相同的單號當(dāng)然不能讓這些瓜皮們創(chuàng)建成功啦,所以要找到這些單號返回文章來源:http://www.zghlxwxcb.cn/news/detail-535850.html
#以訂單號未Key,以這個(gè)單號的數(shù)量未value生成Map
Map<String, Long> orderNoMap = orderNoList.stream().collect(Collectors.groupingBy(item -> item, Collectors.counting()));
#通過orderNo獲取各自的數(shù)量,并進(jìn)行過濾數(shù)量大于1的值
List<String> refOrder = orderNoMap.keySet().stream().filter(key -> orderNoMap.get(key) > 1).collect(Collectors.toList());
if(orderNoList.size() != orderNoDisList.size()){
logger.error("The E-Commerce Order number is the same");
Mesg mesg = new Mesg("wosedi.orderNo.repeat", Mesg.SEVERITY_ERROR,refOrder.toString());
mesg.setCode(ResponseCode.FIELD_FORMAT_INVALID);
mesgs.add(mesg);
}
?可以看到,通過java8 新特性可以在項(xiàng)目中解決很多問題,并且非??焖佟?span toymoban-style="hidden">文章來源地址http://www.zghlxwxcb.cn/news/detail-535850.html
到了這里,關(guān)于list中通過Java 8 新特性查找重復(fù)的值的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!