我需要一个有效的数据结构来进行搜索。目前我正在使用System.Collections.Generic中的一个简单列表,直到找到一个好的解决方案。
用户可以通过在列表中单击来添加/删除字符串。但主要操作是搜索,因为每次用户想要查看列表时我需要检查每个条目(如果用户之前已经点击过它)。该列表可能包含大约100-1000个条目,用户可以选择大约100个。具有所选字符串的列表也将作为字符串数组保存到磁盘,需要再次加载。因此,如果数组以正确的顺序保存,数据结构应该可以快速从字符串数组重建。
我考虑过使用AVL树。这是一个好的解决方案吗?或者可以进行散列(我不知道可以在编译时选择的字符串)?
答案 0 :(得分:1)
由于您使用的是C#,我建议您使用:Dictionary
。它允许您将字符串存储在哈希映射中(与Java Map
相关)。在Dictionary
中存储字符串的好处类似于哈希表的优点,该哈希表将允许持续的搜索,插入和删除时间。如果您想检查是否有重复值,可以在此处查看更多信息:Finding duplicate values in dictionary and print Key of the duplicate element。