欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

判斷List和Map是否相等并合并List中相同的Map

 更新時(shí)間:2018年12月11日 08:56:45   作者:執(zhí)筆記憶的空白  
今天小編就為大家分享一篇關(guān)于判斷List和Map是否相等并合并List中相同的Map,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧

List、Set、Map判斷兩個(gè)對(duì)象相等的標(biāo)準(zhǔn)

  • List:通過equals()方法比較返回true即可。
  • HashSet:先比較兩個(gè)對(duì)象hashCode()方法返回的值是否相等,如果不相等就認(rèn)為兩個(gè)對(duì)象是不相等的,如果兩個(gè)對(duì)象的hashCode相等就繼續(xù)調(diào)用equals()方法進(jìn)一步判斷兩個(gè)對(duì)象是否相等,如果equals()方法返回true認(rèn)為兩個(gè)對(duì)象相等,返回false認(rèn)為兩個(gè)對(duì)象不相等。
  • TreeSet:兩個(gè)對(duì)象通過compareTo(Object obj)方法比較是否返回0:如果返回0,則認(rèn)為相等,否則不相等。
  • HashMap、HashTable:(1)兩個(gè)key通過equals()方法比較返回true,兩個(gè)key的hashCode值也相等;(2)value與另外一個(gè)對(duì)象通過equals()方法比較返回true即可。
  • TreeMap:兩個(gè)key值通過compareTo()方法返回0,TreeMap即認(rèn)為這兩個(gè)key是相等的。
/**
   * 根據(jù)特定規(guī)格,判斷兩個(gè)Map是否相等
   */
  private static boolean isEquals(Map<String, String> src, Map<String, String> dest, String[] samekey) {
    boolean equals = true;
    StringBuffer sbf_src = new StringBuffer();
    StringBuffer sbf_dest = new StringBuffer();
    for (int i = 0; i < samekey.length; i++) {
      sbf_src.append(src.get(samekey[i]));
      sbf_dest.append(dest.get(samekey[i]));
    }
    if (sbf_src.toString().equals(sbf_dest.toString())) {
      equals = true;
    } else {
      equals = false;
    }
    return equals;
  }
  /**
   * 獲得list中有沒有相同的keyMap(待需找的map)<br>
   * 如果找到則返回這個(gè)list和keyMap相同Map的下標(biāo),否則返回-1
   */
  private static int getEqualsMap(List<Map<String, String>> list, Map<String, String> keyMap, String[] samekey) {
    int equalsIndex = -1;
    for (int i = 0; i < list.size(); i++) {
      Map<String, String> tempMap = list.get(i);
      if (isEquals(tempMap, keyMap, samekey)) {
        equalsIndex = i;
      }
    }
    return equalsIndex;
  }
  /**
   * 合并List中相同的Map
   * @param list
   * @return
   */
  public static List<Map<String, String>> combineList(List<Map<String, String>> list, String[] samekey,String combinekey) {
    List<Map<String, String>> retList = new ArrayList<Map<String, String>>();
    for (int i = 0; i < list.size(); i++) {
      Map<String, String> tempMap = list.get(i);
      int equalsIndex = getEqualsMap(retList, tempMap, samekey);
      if (-1 == equalsIndex) {
        retList.add(tempMap);
      } else {
        String custSrc = retList.get(equalsIndex).get(combinekey);
        int custSrcInt = Integer.parseInt(custSrc.substring(0, custSrc.length() - 1));
        String custTemp = tempMap.get(combinekey);
        int custTempInt = Integer.parseInt(custTemp.substring(0, custTemp.length() - 1));
        String destCust = (custSrcInt + custTempInt) + custSrc.substring(custSrc.length() - 1);
        retList.get(equalsIndex).put(combinekey, destCust);
      }
    }
    return retList;
  }

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接

相關(guān)文章

  • java Date獲取年月日時(shí)分秒的實(shí)現(xiàn)方法

    java Date獲取年月日時(shí)分秒的實(shí)現(xiàn)方法

    下面小編就為大家?guī)硪黄猨ava Date獲取年月日時(shí)分秒的實(shí)現(xiàn)方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-06-06
  • SpringBoot中操作Redis及工具類的封裝詳解

    SpringBoot中操作Redis及工具類的封裝詳解

    在我們項(xiàng)目開發(fā)中總是免不了會(huì)使用緩存,Redis現(xiàn)在基本是我們公司中非常常見的緩存方案,包括在用戶token的緩存,熱點(diǎn)信息的緩存等,這篇文章主要講講在SpringBoot項(xiàng)目中如何去操作Redis,及最后工具類的封裝
    2023-05-05
  • Maven?pom.xml文件獲取當(dāng)前時(shí)間戳方式

    Maven?pom.xml文件獲取當(dāng)前時(shí)間戳方式

    這篇文章主要介紹了Maven?pom.xml文件獲取當(dāng)前時(shí)間戳方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • 淺談Spring 的Controller 是單例or多例

    淺談Spring 的Controller 是單例or多例

    這篇文章主要介紹了淺談Spring 的Controller 是單例or多例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • java中List對(duì)象排序通用方法

    java中List對(duì)象排序通用方法

    這篇文章主要介紹了java中List對(duì)象排序通用方法,涉及java針對(duì)List對(duì)象的操作技巧,需要的朋友可以參考下
    2015-05-05
  • Java利用反射實(shí)現(xiàn)文件的讀取操作

    Java利用反射實(shí)現(xiàn)文件的讀取操作

    這篇文章主要介紹了Java利用反射實(shí)現(xiàn)文件的讀取操作,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-02-02
  • springBoot詳解集成Swagger流程

    springBoot詳解集成Swagger流程

    Swagger是一個(gè)規(guī)范和完整的框架,用于生成、描述、調(diào)用和可視化?Restful?風(fēng)格的?Web?服務(wù)。總體目標(biāo)是使客戶端和文件系統(tǒng)作為服務(wù)器以同樣的速度來更新。文件的方法、參數(shù)和模型緊密集成到服務(wù)器端的代碼,允許API來始終保持同步
    2022-06-06
  • Java基礎(chǔ)學(xué)習(xí)之運(yùn)算符相關(guān)知識(shí)總結(jié)

    Java基礎(chǔ)學(xué)習(xí)之運(yùn)算符相關(guān)知識(shí)總結(jié)

    今天帶大家復(fù)習(xí)Java基礎(chǔ)知識(shí),文中對(duì)Java運(yùn)算符相關(guān)知識(shí)作了詳細(xì)總結(jié),對(duì)正在學(xué)習(xí)java基礎(chǔ)的小伙伴們很有幫助,需要的朋友可以參考下
    2021-05-05
  • 使用BeanFactory實(shí)現(xiàn)創(chuàng)建對(duì)象

    使用BeanFactory實(shí)現(xiàn)創(chuàng)建對(duì)象

    這篇文章主要為大家詳細(xì)介紹了使用BeanFactory實(shí)現(xiàn)創(chuàng)建對(duì)象,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-08-08
  • springcloud LogBack日志使用詳解

    springcloud LogBack日志使用詳解

    這篇文章主要介紹了springcloud LogBack日志使用,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-10-10

最新評(píng)論