1 回答

TA貢獻(xiàn)1773條經(jīng)驗(yàn) 獲得超3個(gè)贊
private final LinkedHashMap<String, V> targetMap;
private final HashMap<String, String> caseInsensitiveKeys;
在這種情況下targetMap,包含到您的對(duì)象的真實(shí)大小寫(xiě)字符串,并caseInsensitiveKeys包含將您的小寫(xiě)鍵映射到您的真實(shí)大小寫(xiě)鍵。
它允許在您進(jìn)行 for-each 迭代時(shí)向您顯示實(shí)際大小寫(xiě)鍵,但同時(shí)它允許您不區(qū)分大小寫(xiě)。
所以說(shuō),下面的代碼:
LinkedCaseInsensitiveMap<Object> map = new LinkedCaseInsensitiveMap<>();
map.put("MyCustomObject", new Object());
將放入"MyCustomObject" -> new Object(),targetMap并"mycustomobject" -> "MyCustomObject"放入caseInsensitiveKeys. 現(xiàn)在,如果您嘗試打印您的所有對(duì)象,map它將在您添加而不是更改鍵時(shí)打印它。沒(méi)有第二張地圖就無(wú)法存檔。
添加回答
舉報(bào)