比較兩個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; }
