list中通过Java 8 新特性查找重复的值

这篇具有很好参考价值的文章主要介绍了list中通过Java 8 新特性查找重复的值。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

最近在做项目中,一个客户创建出库单时,可能会有多个订单,通过EXCEL建单对各种情况都做了校验;EDI的接口可能某个前辈同事🧠瓦特了,没有进行电商订单后唯一检验。这个简单又难受的bug就给了我。

java8 获取重复数据,项目随笔,java,excel,开发语言

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.相同的单号返回提醒

有相同的单号当然不能让这些瓜皮们创建成功啦,所以要找到这些单号返回

#以订单号未Key,以这个单号的数量未value生成Map
Map<String, Long> orderNoMap = orderNoList.stream().collect(Collectors.groupingBy(item -> item, Collectors.counting()));
#通过orderNo获取各自的数量,并进行过滤数量大于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 新特性可以在项目中解决很多问题,并且非常快速。文章来源地址https://www.toymoban.com/news/detail-535850.html

到了这里,关于list中通过Java 8 新特性查找重复的值的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 使用java8 新特性stream流对List<Map<String, Object>>集合进行遍历、过滤、查询、去重、排序、分组

    对于一个ListMapString, Object类型的数据,可以使用Java 8的新特性stream流来进行遍历、过滤、查询、去重、排序、分组等操作。 遍历: 过滤: 查询: 去重: 排序: 分组:

    2024年02月10日
    浏览(69)
  • java8新特性,java17新特性

    目前使用最多的jdk版本 相较jdk7主要不同在于 Lambda 表达式和函数式编程 : JDK 8 引入了 Lambda 表达式,使得函数式编程更加便捷。Lambda 表达式允许将函数作为参数传递给方法,以及在集合的操作中更简洁地进行数据处理。 新增的 java.util.function 包提供了函数式接口(如 Funct

    2024年02月11日
    浏览(41)
  • java8 新特性

    1、lambda表达式 Lambda 是一个 匿名函数,我们可以把 Lambda 表达式理解为是 一段可以传递的代码(将代码像数据一样进行传递)。使用它可以写出更简洁、更灵活的代码。 (1)语法 Lambda 表达式:在Java 8 语言中引入的一种新的语法元素和操作符。这个操作符为 “-” , 该操作

    2024年02月09日
    浏览(44)
  • JAVA8~17新特性

    目录 一、前言 二、JAVA8 Lambda表达式 Stream API 创建方式 中间操作 终止操作 Optional类 三、JAVA9 模块机制 JShell交互式编程   接口 新增集合工厂方法 四、JAVA10 局部变量类型判断 五、JAVA11 Lambda表达式补充 String方法的补充 全新的HttpClient 使用 六、JAVA12-16 新的switch语法 文本块 新

    2024年02月15日
    浏览(43)
  • Java8常用新特性

    目录 简介 1.默认方法 2..Lambda表达式 3.Stream API 4.方法引用 5.Optional类 Java 8是Java编程语言的一个重要版本,引入了许多令人兴奋和强大的新特性。这些特性使得Java程序更加现代化、灵活和高效。让我们一起来探索一些Java 8的常用新特性吧! 首先,Java 8引入了函数式编程的概念

    2024年01月22日
    浏览(39)
  • Java8新特性—方法引用

    前言 Java 8引入了方法引用(method reference)作为一种语言特性,它可以简化代码,使得代码更加易读和易于维护。方法引用可以被视为Lambda表达式的简写形式,可以用来替代Lambda表达式中只调用一个已有方法的情况。总的来说该特性使得Java代码更加简洁和灵活。 使用场景 J

    2024年02月03日
    浏览(39)
  • Java8新特性-流式操作

    在Java8中提供了新特性—流式操作,通过流式操作可以帮助我们对数据更快速的进行一些过滤、排序、去重、最大、最小等等操作并且内置了并行流将流划分成多个线程进行并行执行,提供更高效、快速的执行能力。接下来我们一起看看Java8为我们新增了哪些便捷呢? 目录 什

    2024年02月02日
    浏览(45)
  • Java8新特性整理记录

    方法一:  方法二:   例子:

    2024年02月11日
    浏览(43)
  • Java8新特性lambda学习

    Lambda是一个 匿名函数 ,我们可以把Lambda表达式理解为是一段可以传递的代码(将代码像数据一样进行传递)。使用它可以写出更简洁、更灵活的代码。作为一种更紧凑的代码风格,使Java的语言表达能力得到了提升。 本质: 作为 函数式接口 的实例, 没有接口就没意义了. 这两

    2024年02月05日
    浏览(46)
  • Java8的新特性以及使用

    1.   通 过 1 0 个示 例 来 初 步认 识 J a v a 8 中 的 l a m bd a 表达 式   我个 人 对 J a v a   8 发 布 非 常 激动 , 尤 其 是 l a m b d a 表 达式 和 流 AP I 。 越 来 越 多 的 了解 它 们 , 我 能 写 出 更 干 净 的代 码 。 虽然 一 开 始 并 不 是 这 样 。 第一 次 看 到 用 la m b d a 表

    2024年02月07日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包