更改为
public HashBiMap<String,HashSet<FileObject>> wordToFiles = HashBiMap.create ();
但是看起来还是很奇怪。我认为您应该使用另一个集合。从
BiMap文档(
HashBiMap要素
BiMap):
双向映射(或“双向映射”)是一种保留其值以及其键的唯一性的映射。此约束使bimap可以支持“反向视图”,这是另一个bimap,它包含与此bimap相同的条目,但具有相反的键和值。
我不知道您要解决的问题,但查看代码后,我建议您考虑使用Multimaps。从其文档:
一个类似于Map的集合,但是可以将多个值与单个键相关联。如果使用相同的键但值不同两次调用put(K,V),则多映射将包含从键到两个值的映射。
例如,您可以执行以下操作:
Multimap<String, FileObject> wordToFiles = HashMultimap.create();wordToFiles.put("first", somefile);wordToFiles.put("first", anotherfile);for (FileObject file : wordToFiles.get("first"){ doSomethingWithFile (file);}


