From be7a5674e61484e7402a40a5d53d5d4983137758 Mon Sep 17 00:00:00 2001 From: ShikiSuen Date: Thu, 23 Jun 2022 00:18:42 +0800 Subject: [PATCH] UOM // Deduplication on observing keys. --- Source/Modules/LangModelRelated/SubLMs/lmUserOverride.swift | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Source/Modules/LangModelRelated/SubLMs/lmUserOverride.swift b/Source/Modules/LangModelRelated/SubLMs/lmUserOverride.swift index 17cf6bdb..0bcdc457 100644 --- a/Source/Modules/LangModelRelated/SubLMs/lmUserOverride.swift +++ b/Source/Modules/LangModelRelated/SubLMs/lmUserOverride.swift @@ -53,6 +53,9 @@ extension vChewing { var observation: Observation = .init() observation.update(candidate: candidate, timestamp: timestamp) let koPair = KeyObservationPair(key: key, observation: observation) + // 先移除 key 再設定 key 的話,就可以影響這個 key 在辭典內的順位。 + // Swift 原生的辭典是沒有數字索引排序的,但資料的插入順序卻有保存著。 + mutLRUMap.removeValue(forKey: key) mutLRUMap[key] = koPair mutLRUList.insert(koPair, at: 0)