加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

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

发布时间:2020-12-14 05:41:12 所属栏目:Java 来源:网络整理
导读:我正在编写一个程序,它将为数据结构添加越来越多的数字或唯一的字符串.一旦完成,我后来需要不断检查其中是否存在字符串. 如果我使用ArrayList,我相信检查某些指定字符串的存在会遍历所有项目,直到找到匹配的字符串(或到达结尾并返回false). 但是,使用HashMap
我正在编写一个程序,它将为数据结构添加越来越多的数字或唯一的字符串.一旦完成,我后来需要不断检查其中是否存在字符串.

如果我使用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)) {
    ...
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读