【发布时间】:2014-09-03 15:06:12
【问题描述】:
我有一个程序可以读取文档并在每个页面中搜索给定的搜索词。然后它会返回该单词出现在哪些页面中。
即“辉煌”一词出现在以下页面中:1,4,6,8
目前我将文件拆分为页面并将其存储到 ArrayList 中。 ArrayList 的每个元素包含文档的一页
然后我拆分页面上的每个单词并将其存储到一个 hashMap 中,其中 KEY 是该单词出现在文本中的位置(我需要知道这一点以用于其他功能),值是该单词。然后我使用 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++;
}
【问题讨论】: