Java中如何通过equals方法详细比较两个List对象是否完全相同?

2026-05-28 10:102阅读0评论SEO教程
  • 内容介绍
  • 相关推荐

本文共计674个文字,预计阅读时间需要3分钟。

Java中如何通过equals方法详细比较两个List对象是否完全相同?

比较两个list是否相同,通常我会使用数组自带的函数equals,例如:

javapublic int updateTemplateByVO(ContentTemplateVO contentTemplateVO) throws Exception { int flag=0; if (contentTemplateVO==null) { return flag; } // 比较新编写的

比较两个list是否相同,一般我用数组自带的函数equals,如:

public int updateTemplateByVO(ContentTemplateVO contentTemplateVO) throws Exception { int flag = 0; if (null == contentTemplateVO) { return flag; } //比较新编辑的模板参数是否与原有的参数相同 //新的参数数组 List<String> stringList = getParamListFromTemplateContent(contentTemplateVO); //旧的参数数组 List<TContentTemplateParam> tContentTemplateParamList = selectTemplateParamsByTemplateId(contentTemplateVO.getId()); List<String> paramList = new ArrayList<String>();      //将从表里获取的数组重新整理成包含相同类型的list数组 for (TContentTemplateParam contentParam : tContentTemplateParamList) { paramList.add(contentParam.getParamName()); }      //比较两个list Boolean sameSortFlag = stringList.equals(paramList); String content = contentTemplateVO.getSmsMsgContent(); StringBuilder stringBuilder = new StringBuilder(content); //参数有修改则重新排序 if (!sameSortFlag) { String newContent = rightSortForContentParam(contentTemplateVO.getSmsMsgContent()); contentTemplateVO.setSmsMsgContent(newContent); } contentTemplateVO.setUpdateTime(DateUtil.getNowAsDate()); TContentTemplate tContentTemplate = ModelCopyUtil.copy(contentTemplateVO, TContentTemplate.class); flag = tContentTemplateMapper.updateByPrimaryKeySelective(tContentTemplate); if (flag == 1 && (!sameSortFlag)) { //先删除对应模板的参数配置 deleteContentTemplateParam(contentTemplateVO); //重新配置模板参数 addContentTemplateParam(contentTemplateVO); } return flag; }

内容扩展:

Java的俩个list之间比较,判断是否一致的方法

前文

我看了一篇博客,是关于判断俩个list的。看完之后我觉得可能并不是很好。

结合他的思路,我重新整理了一下代码。

同时也看了看String中的equals的实现。

import java.util.List; public class ListUtil { /** * 使用时,务必保证每个对象中实现了equals()方法。 * 如果是自己写的类,比如,Dog,Cat这些的,请重写Object中的equals方法! * * @param aList 左右顺序无所谓 * @param bList 左右顺序无所谓 * @return 尽可能避免相同的情况 */ public static boolean equals(List aList, List bList) { if (aList == bList) return true; if (aList.size() != bList.size()) return false; int n = aList.size(); int i = 0; while (n-- != 0) { if (!aList.get(i).equals(bList.get(i))) return false; i++; } return true; } }

代码过程
首先判断俩个对象是否相同,如果相同,直接返回true。

接着判断俩个的长度是否相同,相同才有比较的意义。

依照size,对list进行遍历。这里是需要用到equals方法,所以在对自己写的一些实体类判断的时候,一定要记得实现覆写hashCode()和equals()方法!同时切记equals方法的传入参数为Object!否则会因为重载的原因,不调用你写的方法。

最后,这个代码算法复杂度为n。

以上就是本次介绍的全部相关知识点,感谢大家的学习和对易盾网络的支持。

Java中如何通过equals方法详细比较两个List对象是否完全相同?

本文共计674个文字,预计阅读时间需要3分钟。

Java中如何通过equals方法详细比较两个List对象是否完全相同?

比较两个list是否相同,通常我会使用数组自带的函数equals,例如:

javapublic int updateTemplateByVO(ContentTemplateVO contentTemplateVO) throws Exception { int flag=0; if (contentTemplateVO==null) { return flag; } // 比较新编写的

比较两个list是否相同,一般我用数组自带的函数equals,如:

public int updateTemplateByVO(ContentTemplateVO contentTemplateVO) throws Exception { int flag = 0; if (null == contentTemplateVO) { return flag; } //比较新编辑的模板参数是否与原有的参数相同 //新的参数数组 List<String> stringList = getParamListFromTemplateContent(contentTemplateVO); //旧的参数数组 List<TContentTemplateParam> tContentTemplateParamList = selectTemplateParamsByTemplateId(contentTemplateVO.getId()); List<String> paramList = new ArrayList<String>();      //将从表里获取的数组重新整理成包含相同类型的list数组 for (TContentTemplateParam contentParam : tContentTemplateParamList) { paramList.add(contentParam.getParamName()); }      //比较两个list Boolean sameSortFlag = stringList.equals(paramList); String content = contentTemplateVO.getSmsMsgContent(); StringBuilder stringBuilder = new StringBuilder(content); //参数有修改则重新排序 if (!sameSortFlag) { String newContent = rightSortForContentParam(contentTemplateVO.getSmsMsgContent()); contentTemplateVO.setSmsMsgContent(newContent); } contentTemplateVO.setUpdateTime(DateUtil.getNowAsDate()); TContentTemplate tContentTemplate = ModelCopyUtil.copy(contentTemplateVO, TContentTemplate.class); flag = tContentTemplateMapper.updateByPrimaryKeySelective(tContentTemplate); if (flag == 1 && (!sameSortFlag)) { //先删除对应模板的参数配置 deleteContentTemplateParam(contentTemplateVO); //重新配置模板参数 addContentTemplateParam(contentTemplateVO); } return flag; }

内容扩展:

Java的俩个list之间比较,判断是否一致的方法

前文

我看了一篇博客,是关于判断俩个list的。看完之后我觉得可能并不是很好。

结合他的思路,我重新整理了一下代码。

同时也看了看String中的equals的实现。

import java.util.List; public class ListUtil { /** * 使用时,务必保证每个对象中实现了equals()方法。 * 如果是自己写的类,比如,Dog,Cat这些的,请重写Object中的equals方法! * * @param aList 左右顺序无所谓 * @param bList 左右顺序无所谓 * @return 尽可能避免相同的情况 */ public static boolean equals(List aList, List bList) { if (aList == bList) return true; if (aList.size() != bList.size()) return false; int n = aList.size(); int i = 0; while (n-- != 0) { if (!aList.get(i).equals(bList.get(i))) return false; i++; } return true; } }

代码过程
首先判断俩个对象是否相同,如果相同,直接返回true。

接着判断俩个的长度是否相同,相同才有比较的意义。

依照size,对list进行遍历。这里是需要用到equals方法,所以在对自己写的一些实体类判断的时候,一定要记得实现覆写hashCode()和equals()方法!同时切记equals方法的传入参数为Object!否则会因为重载的原因,不调用你写的方法。

最后,这个代码算法复杂度为n。

以上就是本次介绍的全部相关知识点,感谢大家的学习和对易盾网络的支持。

Java中如何通过equals方法详细比较两个List对象是否完全相同?