這段時間在公司開發一個官網的咨詢內容錨文本需求,按需求來看,需要優先匹配長詞,如:后台同時設置了“小學數學”及“小學數學補習”那么,優先匹配“小學數學補習”。
原本這里我打算使用TreeMap來存儲數據,以便后面文本替換以自定義順序遍歷鍵。
可在敲完代碼后,發現部分我存儲的key,並沒有成功存儲到TreeMap。
如圖:

排查問題第一步:
首先發現如圖所標識的問題。我個人認為是不是因為設置了自定義排序而引起的問題,於是將自定義排序方式去掉后,存入的數據正常,沒有缺少數據的情況。

排查問題第二步:
既然是加了自定義排序所引發的問題,那就查看一下TreeMap在存儲數據時的過程是怎樣的吧

(圖片看起略小的話,建議右鍵以新標簽頁打開)
這才解釋清楚為啥一開始所遇到的問題:
1.數據缺失
2.部分key-value不匹配。
所以解決方式為:
在設置TreeMap的自定義排序時,必須設置先后兩個值存在算法相同的情況的判斷,且返回必須大於0或小於0,絕對不能有等於0的情況出現,否則key-value不匹配,會出大亂子!!!

