java – 检查String是否存在的高效数据结构

前端之家收集整理的这篇文章主要介绍了java – 检查String是否存在的高效数据结构前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在编写一个程序,它将为数据结构添加越来越多的数字或唯一的字符串.一旦完成,我后来需要不断检查其中是否存在字符串.

如果我使用ArrayList,我相信检查某些指定字符串的存在会遍历所有项目,直到找到匹配的字符串(或到达结尾并返回false).

但是,使用HashMap我知道在常量时间我可以简单地将键用作String并返回任何非null对象,从而使此操作更快.但是,我并不热衷于填充HashMap,其值完全是任意的.是否存在使用散列函数的现成数据结构,但不需要放置值?

解决方法

If I were to use an ArrayList I believe checking for the existence of some specified string would iterate through all items until a matching string is found

正确,检查项目列表是列表条目数的线性.

However,I am not keen on filling a HashMap where the value is completely arbitrary

您不必:Java提供了一个HashSet<T>类,它非常类似于没有值部分的HashMap.

您可以将所有字符串放在那里,然后在恒定时间内检查是否存在其他字符串;

Set<String> knownStrings = new HashSet<String>();
... // Fill the set with strings

if (knownString.contains(myString)) {
    ...
}

猜你在找的Java相关文章