Java - 快速检索的最有效结构

时间:2015-06-19 17:49:07

标签: java string data-structures

我有一个非常简单的问题:我需要检查一个大的(150k)字符串列表是否包含某个字符串。顺序无关紧要,我只需要检查列表是否包含字符串。什么是最有效的数据结构?

3 个答案:

答案 0 :(得分:4)

查看set(Hashset,enumset)和hash(HashMap,linkedhash ...,idnetityhash ..)的实现,它们的contains()方法的速度复杂度为O(1)。

this是使用

的绝佳链接

答案 1 :(得分:1)

您需要一些使用哈希函数来插入,检索和删除元素的结构。它们通常在这些操作中具有理论上的O(1)复杂性。

如果所有字符串都不同,那么您可以使用HashSet。如果您可以重复元素,那么您可以使用HashMapString映射到Integer,其中包含您拥有的元素数量。

答案 2 :(得分:0)

你需要使用一个hashmap,它会给你O(1)的复杂性,只需要将key和value对存储为hm.put(string,string);其中hm是你的hashmap。