如何创建一个 TreeMap 来存储关键字及其计数和文档 ID

How do I create a TreeMap to store a keyword with its count and it's document id

我打算存储来自 wiki 转储的关键字。如何创建一个 TreeMap 来存储关键字及其计数和找到它的文档 ID。另外,我想存储是否找到正文、信息框、参考部分等。

我无法为其提供正确的数据结构。

理论上您可以使用多个 TreeMap,但使用专用值 class 似乎是更好的解决方案。像

public class KeyWordInfo {
    public enum Location {BODY, INFO_BOX; REF_SECTION};
    private int count = 0;
    private String documentId;
    private Set<Location> locations;
    public KeyWordInfo(int count, String documentId, Location... locations) {
        this.count = count;
        this.documentId = documentId;
        this.locations = EnumSet.of(locations);
    }
    //...getters, maybe setters
}

//usage
Map<String, KeyWordInfo> keyWordMap = new TreeMap<>();
keyWordMap.put("test", new KeyWordInfo(42,"doc0815",BODY,INFO_BOX));

如果我没理解错的话,您想创建一个地图来存储有关关键字的信息。 首先,您可以创建一个以字符串作为键、任何对象类型作为值的映射:

Map<String, Object> myMap = new TreeMap<String, Object>();
myMap.put("myKey", new Object());

然后,如果需要,您可以将值类型 "Object" 更改为您可以定义的新 class,将您需要的所有值作为成员(count、documentId、locationFound 等)。 .)

那么您的地图声明将是:

int count = 1;
String documentId = "myDocId";
String locationFound = "body";
Map<String, MyClass> myMap = new TreeMap<String, MyClass>();
myMap.put("myKey", new MyClass(count, documentId, locationFound));