中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

java如何比較兩個list是否相同equals

發布時間:2021-06-17 14:26:13 來源:億速云 閱讀:835 作者:小新 欄目:編程語言

這篇文章將為大家詳細講解有關java如何比較兩個list是否相同equals,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

比較兩個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如何比較兩個list是否相同equals”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

黔江区| 郓城县| 三台县| 鹤壁市| 伊吾县| 金阳县| 湖南省| 松溪县| 沧州市| 遵义县| 淳安县| 寻甸| 泌阳县| 南通市| 大石桥市| 岚皋县| 淮安市| 阳春市| 五寨县| 临邑县| 城口县| 大邑县| 班戈县| 石景山区| 新密市| 芦山县| 亚东县| 隆林| 离岛区| 永济市| 阳曲县| 彩票| 安国市| 罗城| 景泰县| 达拉特旗| 容城县| 怀化市| 高碑店市| 花莲市| 常宁市|