Создать экземпляр BiMap Из google-коллекций на Java

StackOverflow https://stackoverflow.com/questions/2428955

  •  19-09-2019
  •  | 
  •  

Вопрос

Как вы можете создать экземпляр Bimap из Google-коллекций?

Я прочитал этот вопрос Java - Язык:Создание экземпляра HashBiMap из коллекции Google

Пример моего кода

import com.google.common.collect.BiMap;

public class UserSettings {

 private Map<String, Integer> wordToWordID;

 UserSettings() {

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

Я получаю cannot instantiate the type BiMap<String, Integer>.

Это было полезно?

Решение

Как указано в связанном вопросе, вы должны использовать create() фабричные методы.

В вашем случае это означает изменение

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

Для

this.wordToWordID = HashBiMap.create(); 

Другие советы

БиМап является интерфейсом и как таковой не может быть создан.Вам нужно создать экземпляр конкретного подкласса в соответствии с желаемыми свойствами, доступными подклассами (в соответствии с javadoc) являются Перечисление изображений, Перечислениеhashbimap, Хэшбимап, Неизменяемый образ.

Еще один интересный способ создать 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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top