key 是一个文件和一个词。该文件给出了文件中的所有单词。这个词给出了所有有这个词的文件。我不确定域和共同域部分。我希望K为<String>类型,V为<HashSet<FileObject>>类型。

    public HashBiMap<K<String>,V<HashSet<FileObject>>> wordToFiles
            = new HashBiMap<K<String>,V<HashSet<FileObject>>>();

    public HashBiMap<K<String>,V<HashSet<FileObject>>> fileToWords
            = new HashBiMap<K<String>,V<HashSet<FileObject>>>();

Google's HashBiMap.

最佳答案

将其更改为

public HashBiMap<String,HashSet<FileObject>> wordToFiles = HashBiMap.create ();

但它看起来仍然很奇怪。我认为你应该使用另一个集合。来自 BiMap 文档( HashBiMap impelements BiMap ):



我不知道您要解决的问题,但在查看您的代码后,我可以建议考虑使用 Multimaps。从其文档中:



例如,您可以执行以下操作:
Multimap<String, FileObject> wordToFiles = HashMultimap.create();
wordToFiles.put("first", somefile);
wordToFiles.put("first", anotherfile);
for (FileObject file : wordToFiles.get("first"){
   doSomethingWithFile (file);
}

关于Java:如何使用 Google 的 HashBiMap?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2574685/

10-09 15:55