我有一个问题,哪种数据结构最适合特定情况。
我们有一个字符串“AAAAAAAAAAA”,我们想知道这个字符串是否包含在一个数据库列中。
例如,在数据库下面有两列。
1. ID 2. Name
1 A
2 B
3 C
.....
49581 AAAAAAAAAAA
如果匹配则返回true,如果不是false。
我知道我可以使用list<string>
,但我认为这不是搜索的最佳方式
我想知道在这种情况下哪种数据结构是最佳搜索方式。
答案 0 :(得分:5)
如果你只需要知道字符串是否存在,HashSet<string>
搜索的速度会比List<string>
快。
..或者如果您喜欢冒险,可以选择创建“三元搜索树”或“特里”:
http://www.drdobbs.com/database/ternary-search-trees/184410528
答案 1 :(得分:0)
与另一个答案类似,但请注意,如果您有一个哈希表,那么对于列中的每个哈希字符串,您可以将该字符串的行号存储在该字符串的哈希表位置。因此,散列不仅限于确定字符串是否存在于列中。