我将术语索引保存在 HashMap 中,其中 String 是术语,如果在文档中找到该术语,则为 List。
private static Map<String, List<Integer>> termMap;
此哈希图包含文档中找到的术语的索引。但是术语的数量相当大。所以我计划不时将地图写入磁盘并刷新地图。我已经编写了代码,它正在将地图写入磁盘。
fileOutputStream = new FileOutputStream("files/termMap.txt");
objectOutputStream = new ObjectOutputStream(fileOutputStream);
objectOutputStream.writeObject(authMap);
objectOutputStream.close();
但是当第二次尝试写入磁盘时,我无法检查已经存在的术语并更新文档列表而不是替换它们,就像我通常使用下面的代码对 hashmap 所做的那样,
if (termMap.containsKey(key)) {
termMap.get(key).add(valueId);
} else {
List<Integer> list = new ArrayList<Integer>();
list.add(valueId);
termMap.put(key, list);
}
请帮忙!