我有一個Hashmap,它可以在字符串中包含通配符(*)。從java中的HashMap返回通配符匹配列表
例如,
HashMap<String, Student> students_;
可以有約翰·作爲一個重點。我想知道JohnSmith是否與students_中的任何元素相匹配。可能有幾個匹配我的字符串(約翰*,喬*史密斯等)。有什麼辦法可以從我的HashMap中獲得這些匹配的列表嗎?
有沒有另一個對象,我可以使用它不需要我迭代我的集合中的每個元素,還是我必須吸取它並使用List對象?僅供參考,我的收藏將包含少於200個元素,並且最終我會希望找到與最少量通配符匹配的元素組。
哈希函數的方式構建了細微的變化(如:'約翰SmitH'爲' John Smith)產生完全不同的哈希。 – NullUserException
爲什麼你不想迭代?這並不是那麼糟糕(特別是少於200個元素),並且最終任何其他解決方案都可能涉及性能方面的類似情況。 – Guillaume
在少於200個元素的情況下,只需對'entrySet()'進行線性搜索並評估每個鍵的通配符。如果它會更多,我會建議一個(嵌入式)數據庫和一個LIKE查詢。 –