我有几个字符串列表。每个列表代表一个类别。我正在尝试查找特定字符串所在的类别。我只能想到两种方法来做到这一点:
遍历类别并返回包含它的第一个类别。
创建字符串及其类别的运行哈希图。
哪一个更快/更有效,或者有比上面列出的方法更好的方法来查找字符串所在的类别?
我有几个字符串列表。每个列表代表一个类别。我正在尝试查找特定字符串所在的类别。我只能想到两种方法来做到这一点:
遍历类别并返回包含它的第一个类别。
创建字符串及其类别的运行哈希图。
哪一个更快/更有效,或者有比上面列出的方法更好的方法来查找字符串所在的类别?
因此,在哈希映射中查找某些内容是常数时间(摊销),而遍历每个列表是 m*n 时间,其中 m 是列表长度,n 是列表的数量。一定要使用哈希图。
或者,使每个字符串成为包含该类别的对象。
我有几个字符串列表。每个列表代表一个类别。我正在尝试查找特定字符串所在的类别。我只能想到两种方法来做到这一点:
提出这个问题的方式对我来说毫无意义。
如果每个列表代表一个类别并且 aString
最终出现在一个特定列表中(并且您正在尝试找出哪个),那么您必须已经有一种方法可以将 a 映射String
到一个类别并因此映射到一个 List 以便您应该能够使用该映射反向查找哪个 List 是作为成员的候选contain
者String
。
如果您没有这样的映射,那么这意味着每个String
都随机放在一个列表中,但是该列表不能代表您在 OP 中提到的类别。
更新:
从您的评论看来,您没有列表类别,但您正在存储Players
并尝试使用特定属性检索它们。在我看来,您应该首先使用 aHashMap
而不是List
s