Что произойдёт при попытке скомпилировать и выполнить эту программу (предполагается что код расположен внутри main-метода, все необходимые пакеты импортированы)?

NavigableMap<String, String> nm = new TreeMap<String, String>();
nm.put("1", "one");
nm.put("3", "three");
nm.put("2", "two");
nm.put("4", "four");

NavigableSet<String> keys = nm.keySet();
NavigableSet<String> subKeys = keys.subSet("1", true, "3", false);

for(String s: subKeys) {
    System.out.print(s + " ");
}
Explanation
Правильный ответ - ошибка компиляции. Метод keySet() возвращает Set. И так как Set is-not-a NavagableSet (а наоборот - NavagableSet is-a Set), то необходимо явное приведение (explicit cast): (NavigableSet<String>) nm.keySet();

Следи за CodeGalaxy

Мобильное приложение Beta

Get it on Google Play
Обратная Связь
Продолжайте изучать
тесты по Java
Cosmo
Зарегистрируйся сейчас
или Подпишись на будущие тесты