Java—用于快速检索的最高效结构
我有一个非常简单的问题:我需要检查一个大的(150k)字符串列表是否包含某个字符串。顺序不重要,我只需要检查列表是否包含字符串。最有效的数据结构是什么?看看基于set(Hashset,enumset)和hash(HashMap,linkedhash…,idnetityhash…)的实现,contains()方法的速度复杂度为O(1) 是使用基于哈希(Hashset,enumset)和哈希(HashMap,linkedhash…,idnetityhash…)的实现的极好链接,对于contains()方法,它们的速度复杂性为O(1)Java—用于快速检索的最高效结构,java,string,data-structures,Java,String,Data Structures,我有一个非常简单的问题:我需要检查一个大的(150k)字符串列表是否包含某个字符串。顺序不重要,我只需要检查列表是否包含字符串。最有效的数据结构是什么?看看基于set(Hashset,enumset)和hash(HashMap,linkedhash…,idnetityhash…)的实现,contains()方法的速度复杂度为O(1) 是使用基于哈希(Hashset,enumset)和哈希(HashMap,linkedhash…,idnetityhash…)的实现的极好链接,对于contains(
是一个很好的链接使用您需要一些使用哈希函数插入、检索和删除元素的结构。在这些操作中,它们通常具有理论上的O(1)复杂性
如果所有字符串都不同,则可以使用
哈希集
。如果可以有重复的元素,那么可以使用HashMap
将字符串
映射到一个整数
,该整数包含有多少个元素。您需要一些使用哈希函数插入、检索和删除元素的结构。在这些操作中,它们通常具有理论上的O(1)复杂性
如果所有字符串都不同,则可以使用
哈希集
。如果你可以有重复的元素,那么你可以使用一个HashMap
,它将一个字符串映射到一个整数,这个整数包含你有多少个元素。你需要使用一个HashMap,它会给你O(1)复杂度,只需继续并将键和值对存储为hm.put(String,String);其中hm是您的hashmap。您需要使用hashmap,它会给您带来O(1)复杂性,只需继续并将键和值对存储为hm.put(string,string);其中hm是您的hashmap。列表是一种数据结构。您是否在问使用列表数据结构查找匹配字符串的最有效方法是什么?如果您已经有了列表-->Set Set=new HashSet(list);我会考虑一个Tre- Apache公有一个压缩的TIE,它能很好地执行列表,它是一个数据结构。您是否在问使用列表数据结构查找匹配字符串的最有效方法是什么?如果您已经有了列表-->Set Set=new HashSet(list);我会考虑一个Tre- Apache公有一个压缩的TIE,它能很好地执行PatriciaTrie。