亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么 LinkedCaseInsensitiveMap 同時使用 LinkedHashMap

為什么 LinkedCaseInsensitiveMap 同時使用 LinkedHashMap

眼眸繁星 2022-10-12 10:08:59
我正在查看 LinkedCaseInsensitiveMap 的結構(spring framework 5.0.5.RELEASE)。我很好奇為什么 LinkedCaseInsensitiveMap 同時使用 LinkedHashMap 和 HashMap,為什么不直接使用 LinkedHashMap 呢?private final LinkedHashMap<String, V> targetMap;   public V get(Object key) {      if (key instanceof String) {         return this.targetMap.get(convertKey((String) key));      }      return null;   }
查看完整描述

1 回答

?
慕容3067478

TA貢獻1773條經驗 獲得超3個贊

private final LinkedHashMap<String, V> targetMap;


private final HashMap<String, String> caseInsensitiveKeys;

在這種情況下targetMap,包含到您的對象的真實大小寫字符串,并caseInsensitiveKeys包含將您的小寫鍵映射到您的真實大小寫鍵。


它允許在您進行 for-each 迭代時向您顯示實際大小寫鍵,但同時它允許您不區分大小寫。


所以說,下面的代碼:


LinkedCaseInsensitiveMap<Object> map = new LinkedCaseInsensitiveMap<>();

map.put("MyCustomObject", new Object());

將放入"MyCustomObject" -> new Object(),targetMap并"mycustomobject" -> "MyCustomObject"放入caseInsensitiveKeys. 現在,如果您嘗試打印您的所有對象,map它將在您添加而不是更改鍵時打印它。沒有第二張地圖就無法存檔。


查看完整回答
反對 回復 2022-10-12
  • 1 回答
  • 0 關注
  • 179 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號