java - 哈希集中的正则表达式搜索

标签 java regex hashset

有没有办法使用正则表达式在集合中搜索字符串?
例如,我想在哈希集中搜索 AAA*B,并期望结果 AAAAB、AAB 等。

如果没有这样的东西,您建议使用什么来代替哈希集?

这与如何像sql一样搜索数据类似的问题?

最佳答案

HashSet 肯定不会给你任何帮助。它是为非常高效的精确查找而设计的,但对于模糊查找完全没用,因为它没有任何范围或邻近的概念。

没有标准的数据结构支持这样的搜索。 您可以使用 NavigableSet 自行实现部分功能接口(interface)(TreeSet 是标准实现)。

但理想情况下,您需要使用类似 Radix tree 的内容,这不是标准的 Java 数据结构。

当然,您仍然可以使用 HashSet 以强力方式实现它,迭代所有条目并根据您的模式检查每个条目。但你的性能将是 O(n) 而不是 O(1),因此使用 HashSet 没有任何好处(除了消除重复项之外),你还不如使用 ArrayList。

关于java - 哈希集中的正则表达式搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42900039/

相关文章:

java - 在 Libgdx 中创建另一个纹理时,我应该调用 dispose() 纹理吗?

java - 不使用正则表达式将字符串转换为映射

php - 将 **Foo** 替换为 <strong>Foo</stong> (正则表达式)?

java - Set<> = Sets.newHashSet()

Java:将重复的对象添加到集合中?

java - 你能解释一下这个使用枚举的java程序的输出吗?

java - 从 java 启动 WebSphere Message Queue 管理器

regex - Notepad++ 加入不以特定字符开头的行

regex - Notepad++ 正则表达式用于降低 URL 大小写

java - Trim() 方法不删除文本前面的空格吗?