激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - 判斷List和Map是否相等并合并List中相同的Map

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

2021-06-21 13:15執筆記憶的空白 Java教程

今天小編就為大家分享一篇關于判斷List和Map是否相等并合并List中相同的Map,小編覺得內容挺不錯的,現在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧

list、set、map判斷兩個對象相等的標準

  • list:通過equals()方法比較返回true即可。
  • hashset:先比較兩個對象hashcode()方法返回的值是否相等,如果不相等就認為兩個對象是不相等的,如果兩個對象的hashcode相等就繼續調用equals()方法進一步判斷兩個對象是否相等,如果equals()方法返回true認為兩個對象相等,返回false認為兩個對象不相等。
  • treeset:兩個對象通過compareto(object obj)方法比較是否返回0:如果返回0,則認為相等,否則不相等。
  • hashmap、hashtable:(1)兩個key通過equals()方法比較返回true,兩個key的hashcode值也相等;(2)value與另外一個對象通過equals()方法比較返回true即可。
  • treemap:兩個key值通過compareto()方法返回0,treemap即認為這兩個key是相等的。
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
/**
   * 根據特定規格,判斷兩個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>
   * 如果找到則返回這個list和keymap相同map的下標,否則返回-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;
  }

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對服務器之家的支持。如果你想了解更多相關內容請查看下面相關鏈接

原文鏈接:https://blog.csdn.net/moneyshi/article/details/41081313

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 精品人伦一区二区三区蜜桃网站 | 午夜精品久久久久久久99热浪潮 | 久久免费视频7 | 久久国产精品久久久久久 | 一区二区三区黄色 | 鲁久久| 国产视频导航 | 毛片免费看网站 | 高潮激情aaaaa免费看 | 99精品视频99| 一本一道久久久a久久久精品91 | 欧美日韩在线视频一区 | 久久性生活免费视频 | 日本一级黄色大片 | 久久视讯| www久久久久久 | 一级做a爱片性色毛片高清 日本一区二区在线看 | 亚洲国产精品一区二区精品 | 久久精品久久精品国产大片 | 精品国产一区二区三区四区阿崩 | 国产亚洲精品久久久闺蜜 | 欧美在线 | 亚洲 | 成人在线免费观看视频 | 国产亚洲精品久久久久5区 男人天堂免费 | 欧洲精品视频在线观看 | 国产精品久久久久久238 | av国产在线被下药迷网站 | 欧美一区二区三区免费电影 | 国产精品久久久久久久久久电影 | 欧美精品免费一区二区三区 | 成人国产精品齐天大性 | 午夜视频色 | 成人在线观看免费高清 | 中文字幕在线播放视频 | 色成人在线 | 欧美成人精品一区 | 亚洲精品aⅴ中文字幕乱码 欧美囗交 | 成年人高清视频在线观看 | 一级黄色在线免费观看 | 视频一区二区三区在线 | 亚洲午夜在线 |