适当存储对象以便于查找(Java)

时间:2018-07-26 09:53:11

标签: java data-structures hashmap lookup

我有一个包含字符串列表的文件。我程序的输入将是新字符串,并且我需要一种很好的方法来检查输入字符串是否在我预定的字符串列表中出现(这是一个较大程序的一部分,它将使很多请求某些字符串是否在我的预定列表中。

基本上,我有一组字符串,我想检查在O(1)时间中是否有新的字符串位于该字符串中。我现在使用的是创建一个HashMap<String,Boolean>,并在其中存储所有我预定的字符串并附加布尔值true。然后,我可以检查字符串s是否在containsKey(s)的预定集中。

但是,从某种意义上说,这意味着哈希映射比我想做的要多(将输入与输出配对),这是错误的,这里我仅使用containsKey(String string)函数。另外,我实际上存储了很多不需要的布尔值。但这是我在O(1)时间内想出的唯一方法。

做我想做的事有更好的方法吗?

欢呼

1 个答案:

答案 0 :(得分:2)

只需使用HashSet<String>。然后,您可以像使用HashMap一样检查contains(s)