全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

java list 比较详解及实例

java list 比较详解及实例

java里比较两个list的值是否一致,不考虑顺序,有多种方法,比如排序后直接用equals比较,相互之间执行两次containsAll等,这些办法都需要我们给list的元素类实现equals和hashcode方法。但是有一种特殊情况,如果我们并不方便去实习类的equals方法,例如是一个古老的第三方jar包,改代码会带来很多未知问题,这时候该怎么办呢。

其实很简单,万能的apache-commons早就想到了这一点,所以在commons-collections4中增加了外部输入equals和hashcode的方法,甚至equals和hashcode方法本身也不需要我们自己写代码,可以用comons-lang包实现,具体代码如下

   <dependency>
      <groupId>org.apache.commons</groupId>
      <artifactId>commons-collections4</artifactId>
      <version>4.1</version>
    </dependency>
    <dependency>
      <groupId>org.apache.commons</groupId>
      <artifactId>commons-lang3</artifactId>
      <version>3.5</version>
    </dependency>
  public static <T> boolean isEqualCollection(Collection<T> l1, Collection<T> l2, final String... exludedFields) {
    Equator<T> equator = generateEquator(exludedFields);
    return CollectionUtils.isEqualCollection(l1, l2, equator);
  }
 private static <T> Equator<T> generateEquator(final String... exludedFields) {
    Equator<T> equator = new Equator<T>() {
      @Override
      public boolean equate(T o1, T o2) {
        if (o1 == null && o2 == null) {
          return true;
        }
        if (o1 == null || o2 == null) {
          return false;
        }
        if (o1.getClass() != o2.getClass()) {
          return false;
        }
        return EqualsBuilder.reflectionEquals(o1, o2, exludedFields);
      }

      @Override
      public int hash(T o) {
        return HashCodeBuilder.reflectionHashCode(o, exludedFields);
      }
    };
    return equator;
  }

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!


# java  # list  # 比较详解  # list对比  # Java比较两个List的值是否相等的方法  # Java中两个List之间的比较方法(差集、交集和并集)  # Java Stream比较两个List的差异并取出不同的对象四种方法  # 是一个  # 也不  # 可以用  # 两次  # 有多  # 希望能  # 相互之间  # 种方法  # 谢谢大家  # 第三方  # 一种特殊  # 其实很简单  # 便去  # 增加了  # 这时候  # 但是有  # brush  # lt  # class  # lang 


相关文章: 怎么用手机制作网站链接,dw怎么把手机适应页面变成网页?  为什么Go需要go mod文件_Go go mod文件作用说明  如何用已有域名快速搭建网站?  rsync同步时出现rsync: failed to set times on “xxxx”: Operation not permitted  如何快速生成专业多端适配建站电话?  制作企业网站建设方案,怎样建设一个公司网站?  Python如何创建带属性的XML节点  Dapper的Execute方法的返回值是什么意思 Dapper Execute返回值详解  如何在Windows 2008云服务器安全搭建网站?  北京制作网站的公司排名,北京三快科技有限公司是做什么?北京三快科技?  广州网站建站公司选择指南:建站流程与SEO优化关键词解析  建站之星代理如何优化在线客服效率?  如何选择高效稳定的ISP建站解决方案?  已有域名和空间如何搭建网站?  如何选择靠谱的建站公司加盟品牌?  网站制作和推广的区别,想自己建立一个网站做推广,有什么快捷方法马上做好一个网站?  教学论文网站制作软件有哪些,写论文用什么软件 ?  用v-html解决Vue.js渲染中html标签不被解析的问题  如何在IIS服务器上快速部署高效网站?  韩国网站服务器搭建指南:VPS选购、域名解析与DNS配置推荐  如何配置IIS站点权限与局域网访问?  如何快速搭建响应式可视化网站?  如何在沈阳梯子盘古建站优化SEO排名与功能模块?  c++怎么用jemalloc c++替换默认内存分配器【性能】  建站之星官网登录失败?如何快速解决?  如何在宝塔面板中创建新站点?  如何通过虚拟主机空间快速建站?  如何用花生壳三步快速搭建专属网站?  攀枝花网站建设,攀枝花营业执照网上怎么年审?  香港服务器部署网站为何提示未备案?  昆明网站制作哪家好,昆明公租房申请网上登录入口?  Python文件管理规范_工程实践说明【指导】  建站主机空间推荐 高性价比配置与快速部署方案解析  如何在阿里云域名上完成建站全流程?  如何选择服务器才能高效搭建专属网站?  如何通过IIS搭建网站并配置访问权限?  微信小程序 input输入框控件详解及实例(多种示例)  实现虚拟支付需哪些建站技术支撑?  青浦网站制作公司有哪些,苹果官网发货地是哪里?  学校建站服务器如何选型才能满足性能需求?  C#如何序列化对象为XML XmlSerializer用法  代购小票制作网站有哪些,购物小票的简要说明?  深圳网站制作案例,网页的相关名词有哪些?  如何在IIS中配置站点IP、端口及主机头?  北京网站制作的公司有哪些,北京白云观官方网站?  如何在七牛云存储上搭建网站并设置自定义域名?  建站主机与虚拟主机有何区别?如何选择最优方案?  建站之星安装模板失败:服务器环境不兼容?  网站广告牌制作方法,街上的广告牌,横幅,用PS还是其他软件做的?  香港服务器网站生成指南:免费资源整合与高速稳定配置方案 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。