IT培训-高端面授IT培训机构
云和教育:云和数据集团高端IT职业教育品牌 全国咨询热线:0371-67988003
课程 请选择课程
    校区 请选择校区
      • 华为
        授权培训中心
      • 腾讯云
        一级认证培训中心
      • 百度营销大学
        豫陕深授权运营中心
      • Oracle甲骨文
        OAEP中心
      • Microsoft Azure
        微软云合作伙伴
      • Unity公司
        战略合作伙伴
      • 普华基础软件
        战略合作伙伴
      • 新开普(股票代码300248)
        旗下丹诚开普投资
      • 中国互联网百强企业锐之旗
        旗下锐旗资本投资

      JAVA开发技巧:重复数据如何处理?List集合去重的四种方式

      • 发布时间:
        2019-04-09
      • 版权所有:
        云和教育
      • 分享:

      List集合在日常Java开发中是必不可少的,只要懂得运用各种各样的方法就可以大大提高我们开发的效率,适当活用各种方法才会使我们开发事半功倍。但是,有时候难免会遇到集合里的数据是重复的,需要进行去除。今天,就给大家讲解一下JAVA开发List集合去重的的四种方式。

      配图1 Java开发List集合去重的的四种方式.jpg

      1、双重for循环去重

      使用两个for循环遍历集合所有元素,然后进行判断是否有相同元素。两两比较如果相等的话就删除第二个。例如:1 1 1 3 2 1 2 4,先让第一个1 即arr[0]与后面的一个个比较,如果后面的值等于arr[0] 删除后面的值,第一次结束后的结果是 1 3 2 2 4 ,删除了后面所有的1 。

      配图2 Java开发List集合去重-双重for循环去重.jpg

      同理,第二次、第三会删除与自己相同的元素。

      2、HashSet去重

      配图3 Java开发List集合去重-HashSet去重.jpg

      背过特性的都知道HashSet可以去重,把List集合所有元素存入HashSet对象,接着把List集合元素全部清空,最后把HashSet对象元素全部添加至List集合中,这样就可以保证不出现重复元素。

      3、Java8新特性stream去重

      配图4 Java8新特性stream去重.jpg

      对于大数据,采用Stream相关函数去重是最简单的了。Java8中Stream提供了对List 做简单去重的处理,通过调用distinct方法,可以实现对类型Integer、Long、Char 等基本类型以及String类型的去重。需要注意的是,无法对自定义对象进行去重处理。

      4、Lambda表达式去重

      配图5 Lambda表达式去重.jpg

      lLambda表达式是Java8中提供的一种新的特性,它支持JAVA也能进行简单的“函数式编程”。利用Lambda表达式能很方便的对list对象进行去重,而且不会造成代码入侵。不过,Lambda表达式只能出现在目标类型为函数式接口的上下文中。你平时List集合去重,方式用对了吗?