java比较两个list是否相同equals的代码详解

网友投稿 280 2023-05-15

java比较两个list是否相同equals的代码详解

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

public int updateTemplateByVO(ContentTemplateVO contentTemplateVO) throws Exception {

int flag = 0;

if (null == contentTemplateVO) {

return flag;

}

//比较新编辑的模板参数是否与原有的参数相同

//新的参数数组

List stringList = getParamListFromTemplateContent(contentTemplateVO);

//旧的参数数组

List tContentTemplateParamList = selectTemplateParamsByTemplateId(contentTemplateVO.getId());

List paramList = new ArrayList();

     //将从表里获取的数组重新整理成包含相同类型的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 左右顺序无所http://谓

* @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。

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

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:java中获取类资源的方法总结
下一篇:java实现文件拷贝的七种方式
相关文章

 发表评论

暂时没有评论,来抢沙发吧~