java比较两个list是否相同equals的代码详解
比较两个list是否相同,一般我用数组自带的函数equals,如:
publicintupdateTemplateByVO(ContentTemplateVOcontentTemplateVO)throwsException{
intflag=0;
if(null==contentTemplateVO){
returnflag;
}
//比较新编辑的模板参数是否与原有的参数相同
//新的参数数组
ListstringList=getParamListFromTemplateContent(contentTemplateVO);
//旧的参数数组
ListtContentTemplateParamList=selectTemplateParamsByTemplateId(contentTemplateVO.getId());
ListparamList=newArrayList();
//将从表里获取的数组重新整理成包含相同类型的list数组
for(TContentTemplateParamcontentParam:tContentTemplateParamList){
paramList.add(contentParam.getParamName());
}
//比较两个list
BooleansameSortFlag=stringList.equals(paramList);
Stringcontent=contentTemplateVO.getSmsMsgContent();
StringBuilderstringBuilder=newStringBuilder(content);
//参数有修改则重新排序
if(!sameSortFlag){
StringnewContent=rightSortForContentParam(contentTemplateVO.getSmsMsgContent());
contentTemplateVO.setSmsMsgContent(newContent);
}
contentTemplateVO.setUpdateTime(DateUtil.getNowAsDate());
TContentTemplatetContentTemplate=ModelCopyUtil.copy(contentTemplateVO,TContentTemplate.class);
flag=tContentTemplateMapper.updateByPrimaryKeySelective(tContentTemplate);
if(flag==1&&(!sameSortFlag)){
//先删除对应模板的参数配置
deleteContentTemplateParam(contentTemplateVO);
//重新配置模板参数
addContentTemplateParam(contentTemplateVO);
}
returnflag;
}
内容扩展:
Java的俩个list之间比较,判断是否一致的方法
前文
我看了一篇博客,是关于判断俩个list的。看完之后我觉得可能并不是很好。
结合他的思路,我重新整理了一下代码。
同时也看了看String中的equals的实现。
importjava.util.List;
publicclassListUtil{
/**
*使用时,务必保证每个对象中实现了equals()方法。
*如果是自己写的类,比如,Dog,Cat这些的,请重写Object中的equals方法!
*
*@paramaList左右顺序无所谓
*@parambList左右顺序无所谓
*@return尽可能避免相同的情况
*/
publicstaticbooleanequals(ListaList,ListbList){
if(aList==bList)
returntrue;
if(aList.size()!=bList.size())
returnfalse;
intn=aList.size();
inti=0;
while(n--!=0){
if(!aList.get(i).equals(bList.get(i)))
returnfalse;
i++;
}
returntrue;
}
}
代码过程
首先判断俩个对象是否相同,如果相同,直接返回true。
接着判断俩个的长度是否相同,相同才有比较的意义。
依照size,对list进行遍历。这里是需要用到equals方法,所以在对自己写的一些实体类判断的时候,一定要记得实现覆写hashCode()和equals()方法!同时切记equals方法的传入参数为Object!否则会因为重载的原因,不调用你写的方法。
最后,这个代码算法复杂度为n。
以上就是本次介绍的全部相关知识点,感谢大家的学习和对毛票票的支持。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。