Java:如何使用Google的HashBiMap?
键是文件和单词。 该文件提供文件中的所有单词。 这个词给出了所有包含这个词的文件。 我不确定域和共域部分。 我希望K的类型为而V的类型为
<HashSet>
。
public HashBiMap<K,V<HashSet>> wordToFiles = new HashBiMap<K,V<HashSet>>(); public HashBiMap<K,V<HashSet>> fileToWords = new HashBiMap<K,V<HashSet>>();
谷歌的HashBiMap。
改为
public HashBiMap> wordToFiles = HashBiMap.create ();
但它看起来仍然很奇怪。 我想你应该使用另一个系列。 来自BiMap
文档( HashBiMap
BiMap
):
bimap(或“双向映射”)是一种保留其值及其键值的唯一性的映射。 此约束使bimaps支持“反向视图”,这是另一个包含与此bimap相同的条目但具有反向键和值的bimap。
我不知道你想要解决的问题,但在查看你的代码后,我建议考虑使用Multimaps。 从它的文档:
类似于Map的集合,但可以将多个值与单个键相关联。 如果使用相同的键但不同的值调用put(K,V)两次,则multimap包含从键到两个值的映射。
例如,您可以执行以下操作:
Multimap wordToFiles = HashMultimap.create(); wordToFiles.put("first", somefile); wordToFiles.put("first", anotherfile); for (FileObject file : wordToFiles.get("first"){ doSomethingWithFile (file); }
将此依赖项添加到“build.gradle”
compile 'com.google.guava:guava:19.0'
导入BiMap和HashBiMap
import com.google.common.collect.BiMap; import com.google.common.collect.HashBiMap;
创建一个bimap
BiMap myBiMap = HashBiMap.create();
提出一些价值观
myBiMap.put("key", "value");
按键获取映射值,
myBiMap.get("key");
按值获取映射,
myBiMap.inverse().get("value");
- 如何在Spring中使用application.properties设置配置文件?
- 内存不一致与线程交错有何不同?
- mailR Connection拒绝来自linux而不是来自windows
- java.io.FileNotFoundException在文件名中检索带有变音符号的URL时
- 我什么时候应该在Java的try-catch-finally中使用finally-block
- Java Streams – 如何在每第n个项目中执行中间函数
- 在Java中,有多接近连接并使用HttpURLConnection释放端口/套接字?
- 如何在Java(JSSE)中使用默认的KeyStore时提供特定的TrustStore
- 使用JSONObject放置/获取字节数组值