在 Java 中实例化 BiMap Of google-collections

发布于 2024-08-24 15:33:15 字数 546 浏览 6 评论 0原文

如何实例化 Google 集合的 Bimap

我已阅读问题 Java:实例化 Google Collection 的 HashBiMap

我的代码示例

import com.google.common.collect.BiMap;

public class UserSettings {

 private Map<String, Integer> wordToWordID;

 UserSettings() {

  this.wordToWordID = new BiMap<String. Integer>();

我得到无法实例化类型 BiMap

How can you instantiate a Bimap of Google-collections?

I've read the question Java: Instantiate Google Collection's HashBiMap

A sample of my code

import com.google.common.collect.BiMap;

public class UserSettings {

 private Map<String, Integer> wordToWordID;

 UserSettings() {

  this.wordToWordID = new BiMap<String. Integer>();

I get cannot instantiate the type BiMap<String, Integer>.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

小情绪 2024-08-31 15:33:16

创建 BiMap(但在本例中是不可变 BiMap)的另一种很酷的方法是使用 ImmutableBiMap.Builder

static final ImmutableBiMap<String, Integer> WORD_TO_INT =
   new ImmutableBiMap.Builder<String, Integer>()
       .put("one", 1)
       .put("two", 2)
       .put("three", 3)
       .build();

http://docs.guava-libraries .googlecode.com/git/javadoc/com/google/common/collect/ImmutableBiMap.html

Another cool way to create a BiMap, but in this case an immutable BiMap, is using the ImmutableBiMap.Builder.

static final ImmutableBiMap<String, Integer> WORD_TO_INT =
   new ImmutableBiMap.Builder<String, Integer>()
       .put("one", 1)
       .put("two", 2)
       .put("three", 3)
       .build();

http://docs.guava-libraries.googlecode.com/git/javadoc/com/google/common/collect/ImmutableBiMap.html

寂寞陪衬 2024-08-31 15:33:15

正如链接问题中所述,您应该使用 create() 工厂方法。

就您而言,这意味着更改

this.wordToWordID = new BiMap<String. Integer>();

this.wordToWordID = HashBiMap.create(); 

As stated in the linked question, you are supposed to use the create() factory methods.

In your case, this means changing

this.wordToWordID = new BiMap<String. Integer>();

to

this.wordToWordID = HashBiMap.create(); 
不交电费瞎发啥光 2024-08-31 15:33:15

BiMap 是一个接口,因此无法实例化。您需要根据所需的属性实例化一个具体的子类,可用的子类(根据javadoc)为EnumBiMapEnumHashBiMapHashBiMap不可变BiMap

BiMap is an interface, and as such cannot be instantiated. You need to instantiate a concrete subclass according to the properties you want, available subclasses (according to the javadoc) are EnumBiMap, EnumHashBiMap, HashBiMap, ImmutableBiMap.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文