我有一个程序,它读取文档并搜索每一页中的给定搜索词。然后返回该词出现在哪些页面上。
例如,“brilliant”这个词出现在以下页面:1,4,6,8。
目前我将文件分成页面,并将其存储到ArrayList中。ArrayList的每个元素包含文档的一页。
然后我会将每个页面上的每个单词拆分并存储到一个HashMap中,其中KEY是该单词在文本中出现的位置(我需要知道这一点以进行其他功能),而VALUE是该单词。然后我使用以下方式搜索HashMap;
我针对每个页面都执行此操作。 一切都正常,但我想知道是否有更有效的数据结构可用,该结构存储给定页面上出现的所有单词以及其位置?(因为在没有给定键的情况下搜索地图中的值是0(n))。 我需要能够通过此结构搜索并查找单词。请记住,我还需要稍后使用位置信息。 我用以下代码向地图填充文本中单词的位置:
例如,“brilliant”这个词出现在以下页面:1,4,6,8。
目前我将文件分成页面,并将其存储到ArrayList中。ArrayList的每个元素包含文档的一页。
然后我会将每个页面上的每个单词拆分并存储到一个HashMap中,其中KEY是该单词在文本中出现的位置(我需要知道这一点以进行其他功能),而VALUE是该单词。然后我使用以下方式搜索HashMap;
if (map.containsValue(searchString) == true)
return true;
else
return false;
我针对每个页面都执行此操作。 一切都正常,但我想知道是否有更有效的数据结构可用,该结构存储给定页面上出现的所有单词以及其位置?(因为在没有给定键的情况下搜索地图中的值是0(n))。 我需要能够通过此结构搜索并查找单词。请记住,我还需要稍后使用位置信息。 我用以下代码向地图填充文本中单词的位置:
// text is the page of text from a document as a string
int key = 1; // position of the word in the text
for (String element : text.split(" "))
{
map.put(key, element);
key++;
}