有没有办法使用正则表达式在集合中搜索字符串?
例如,我想在哈希集中搜索 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/