<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Map與Map.Entry的區別

      Map與Map.Entry的區別


      Map:鍵值對的集合

      Map 的創建與本質

      Map 是一種用于存儲鍵值對(key-value)的數據結構。每個鍵都是唯一的,它映射到一個對應的值。

      // 使用泛型創建一個 Map,例如鍵為 String 類型,值為 Integer 類型
      Map<String, Integer> map = new HashMap<>();
      

      它的核心思想就像一本字典:通過“單詞”(key)可以快速查到它的“釋義”(value)。

      Map 的無序性

      大多數 Map 的實現(如 HashMap)不保證元素的存儲順序。你放入元素的順序,和遍歷時取出的順序,通常是不一致的。這種設計是為了優化查找速度。
      因此,不能直接對 Map 本身進行排序。

      對 Map 進行排序的標準流程

      要對 Map 的內容進行排序,我們需要一個“中轉站”,這個中轉站就是 List。標準流程如下:

      1. 提取鍵值對:使用 map.entrySet() 方法,將 Map 中的所有鍵值對提取出來,形成一個 Set 集合。
      2. 轉換為 List:將這個 Set 轉換為一個 List,因為 List 是有序的,并且支持排序。
      3. 自定義排序:使用 Collections.sort()List.sort() 方法,并提供一個自定義的比較器 Comparator 來定義排序規則。
      // 1. 將 Map 的所有鍵值對轉換成一個 List
      List<Map.Entry<String, Integer>> list = new ArrayList<>(map.entrySet());
      // 2. 使用 Collections.sort() 對 List 進行排序
      Collections.sort(list, new Comparator<Map.Entry<String, Integer>>() {
          @Override
          public int compare(Map.Entry<String, Integer> o1, Map.Entry<String, Integer> o2) {
              // 先按值 降序 排列
              int valueCompare = o2.getValue().compareTo(o1.getValue());
              if (valueCompare != 0) {
                  return valueCompare;
              }
              // 如果值相同,再按鍵 升序 排列
              return o1.getKey().compareTo(o2.getKey());
          }
      });
      // 現在的 list 就是有序的了,可以按順序遍歷輸出
      for (Map.Entry<String, Integer> entry : list) {
          System.out.println(entry.getKey() + ": " + entry.getValue());
      }
      

      上面的代碼可以用更簡潔的 Lambda 表達式來寫:

      List<Map.Entry<String, Integer>> list = new ArrayList<>(map.entrySet());
      list.sort((e1, e2) -> {
          int valueCompare = e2.getValue().compareTo(e1.getValue());
          if (valueCompare != 0) {
              return valueCompare;
          }
          return e1.getKey().compareTo(e2.getKey());
      });
      

      在排序后的 list 中,數據就像 [ (key1, value1), (key2, value2), ... ] 這樣有序地存儲。


      Map.Entry:鍵值對的“名片”

      功能

      Map.EntryMap 接口內部的一個嵌套接口。它不是 Map 本身,而是 Map單個鍵值對的表示。
      你可以把它想象成一張“名片”或一個“包裹”,這張名片上清晰地寫著:

      • getKey(): 獲取鍵
      • getValue(): 獲取值
      • Key.setValue(value): 設置值(注意,這個操作會直接修改原始 Map 中對應的值)

      Map.Entry的作用

      正因為 Map.Entry 可以將一個鍵和一個值捆綁成一個獨立的對象,我們才能將它放入 List 中,并基于它的 keyvalue 來編寫自定義的排序邏輯。沒有它,我們就無法方便地對 Map 的內容進行排序。

      posted @ 2025-10-19 21:50  穗和  閱讀(3)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 亚洲情A成黄在线观看动漫尤物| 亚洲午夜无码久久久久蜜臀av| 做暖暖视频在线看片免费| 最新国产精品好看的精品| 一个人免费观看WWW在线视频| 亚洲精品免费一二三区| 国产口爆吞精在线视频2020版| 九九热在线视频免费播放| 日本一区二区不卡精品| 精品一区二区三区东京热| 国产高清精品在线91| 五月开心六月丁香综合色啪| 露脸国产精品自产拍在线观看| 四虎精品视频永久免费| 欧美成人精品在线| A男人的天堂久久A毛片| 贵阳市| 精品国产精品中文字幕| 2021国产成人精品久久| 欧美三级在线播放| 国产色a在线观看| 国产成人无码免费网站| av在线播放观看国产| 国产一区二区三区四区色| 国产福利酱国产一区二区| 在线a亚洲v天堂网2018| 亚洲第一无码AV无码专区| 在线播放免费人成毛片| 亚洲另类激情专区小说图片| 粉嫩av一区二区三区蜜臀| 麻豆国产成人AV在线播放| 欧美成人片一区二区三区| 色悠久久网国产精品99| 深夜在线观看免费av| 强奷乱码中文字幕| 亚洲成人四虎在线播放| 亚洲中文精品一区二区| 尉犁县| 久久国产免费直播| 亚洲天堂精品一区二区| 欧美老少配性行为|