這篇文章將為大家詳細講解有關java如何比較兩個list是否相同equals,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
為企業(yè)提供成都網(wǎng)站建設、成都網(wǎng)站制作、網(wǎng)站優(yōu)化、成都營銷網(wǎng)站建設、競價托管、品牌運營等營銷獲客服務。創(chuàng)新互聯(lián)擁有網(wǎng)絡營銷運營團隊,以豐富的互聯(lián)網(wǎng)營銷經(jīng)驗助力企業(yè)精準獲客,真正落地解決中小企業(yè)營銷獲客難題,做到“讓獲客更簡單”。自創(chuàng)立至今,成功用技術實力解決了企業(yè)“網(wǎng)站建設、網(wǎng)絡品牌塑造、網(wǎng)絡營銷”三大難題,同時降低了營銷成本,提高了有效客戶轉化率,獲得了眾多企業(yè)客戶的高度認可!
比較兩個list是否相同,一般我用數(shù)組自帶的函數(shù)equals,如:
public int updateTemplateByVO(ContentTemplateVO contentTemplateVO) throws Exception { int flag = 0; if (null == contentTemplateVO) { return flag; } //比較新編輯的模板參數(shù)是否與原有的參數(shù)相同 //新的參數(shù)數(shù)組 List<String> stringList = getParamListFromTemplateContent(contentTemplateVO); //舊的參數(shù)數(shù)組 List<TContentTemplateParam> tContentTemplateParamList = selectTemplateParamsByTemplateId(contentTemplateVO.getId()); List<String> paramList = new ArrayList<String>(); //將從表里獲取的數(shù)組重新整理成包含相同類型的list數(shù)組 for (TContentTemplateParam contentParam : tContentTemplateParamList) { paramList.add(contentParam.getParamName()); } //比較兩個list Boolean sameSortFlag = stringList.equals(paramList); String content = contentTemplateVO.getSmsMsgContent(); StringBuilder stringBuilder = new StringBuilder(content); //參數(shù)有修改則重新排序 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)) { //先刪除對應模板的參數(shù)配置 deleteContentTemplateParam(contentTemplateVO); //重新配置模板參數(shù) addContentTemplateParam(contentTemplateVO); } return flag; }
內(nèi)容擴展:
Java的倆個list之間比較,判斷是否一致的方法
前文
我看了一篇博客,是關于判斷倆個list的。看完之后我覺得可能并不是很好。
結合他的思路,我重新整理了一下代碼。
同時也看了看String中的equals的實現(xiàn)。
import java.util.List; public class ListUtil { /** * 使用時,務必保證每個對象中實現(xiàn)了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方法,所以在對自己寫的一些實體類判斷的時候,一定要記得實現(xiàn)覆寫hashCode()和equals()方法!同時切記equals方法的傳入?yún)?shù)為Object!否則會因為重載的原因,不調(diào)用你寫的方法。
最后,這個代碼算法復雜度為n。
關于“java如何比較兩個list是否相同equals”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
標題名稱:java如何比較兩個list是否相同equals
URL網(wǎng)址:http://m.kartarina.com/article42/jecshc.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供域名注冊、網(wǎng)站內(nèi)鏈、商城網(wǎng)站、搜索引擎優(yōu)化、網(wǎng)站建設、手機網(wǎng)站建設
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)