Словарь на основе HashMap

331
15 января 2017, 15:49

Возникла необходимость создать класс словаря, метод которого для каждого слова возвращает его текстовое объяснение. Инициализировать словарь несколькими словами.
В данном варианте всегда возвращает null. Что я сделал не так?

pulic class Dict extends HashMap {
    HashMap<String, String> dict = new HashMap<String, String>();
    String first;
    String second;
    public Dict(String first, String second) {
        dict.put(first, second);
    }
    public Dict() {}
    public void put(String first, String second) {
        dict.put(first, second);
    }
    public void printDict(String first) {
        System.out.println(dict.get(this.first));
    }
}

Main:

public class Main {
    public static void main(String[] args) {
        Dict dict = new Dict();
        dict.put("я", "мы");
        dict.put("ты", "вы");
        dict.put("он, она, оно", "они");
        dict.printDict("я");
    }
}
Answer 1

Не знаю зачем вам поля first и second, ибо они никак не используются.
В методе printDict должно быть dict.get(first): имеет смысл использовать переданный в метод параметр вместо неиспользуемого и неинициализированного поля.

public void printDict(String first)
{
    System.out.println(dict.get(first));
}
READ ALSO
Живые обои Live Wallpaper

Живые обои Live Wallpaper

Доброго времени суток

439
JUnit: timeout некорректно работает?

JUnit: timeout некорректно работает?

Есть следующий тест:

278
Что такое External library?

Что такое External library?

external libraries intellij - это список подключенных по умолчанию библиотек? что то вроде include cstdlib?

310
DrawerLayout с fragment с разными toolbar

DrawerLayout с fragment с разными toolbar

Мне нужно реализовать такую структуруВыдвижная панель, кликая по варианту из списка в главную активности заместо FrameLayout загружается фрагмент

409