gpt4 book ai didi

java - 检查 HashMap 中是否存在字符串的一部分

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:32:36 25 4
gpt4 key购买 nike

我有一个包含 60k 键/值对的 HashMap

我有 100 个字符串,在这 100 个字符串中,有一个子字符串存在于 HashMap 中。

我将不得不重复这个过程一千次。有没有一种有效的方法来做到这一点?

比方说,散列包含如下内容:

journal of america, rev su arabia, comutational journal, etc..

字符串如下:

published in rev su arabia

the publication event happened in

computationl journal 230:34

第一个和第三个字符串包含哈希中的键/值,我需要找出它们。

代码(效率不高)

private String contains(String candidateLine)
{
Iterator<String> it = journalName.iterator();
while (it.hasNext())
{
String journalName = it.next();
if (candidateLine.contains(journalName))
return journalName;
}
return null;
}

请提出建议。

最佳答案

鉴于您的要求,唯一的答案是:错误的设计点。您基本上是在询问如何有效地支持“全文”搜索功能。对于这个问题,答案是:不要自己动手。

意思是:忘了在这里重新发明轮子吧。相反,选择现有的解决方案,例如 Lucene(库)或 Solr 或 ElasticSearch 等产品(有关更多信息,请参见 here)。

您看,我们很可能正在研究“现实世界”的生产问题。因此,即使您找到了一种聪明的方法来构建自己的数据结构来支持您当前的需求,但迟早会有“更多”需求出现的可能性很高。

因此,我认真地建议澄清要解决的确切问题,然后确定最能解决问题的现有产品。否则,您将永远进行艰苦的战斗。

关于java - 检查 HashMap 中是否存在字符串的一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50931145/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com