Страницы

Поиск по вопросам

четверг, 13 февраля 2020 г.

Инициализация интерфейса Map

#java #коллекции #java_hashmap


Что происходит в данной записи ?

Map m =  new HashMap();


Интерфейс Map  через полиморфизм инициализируется  классом потомком   "HashMap" ? 
Для чего это делается ?

Map m; 
for (int i = 0; i < aProduct.length; i++) {

    m = new HashMap(); 

    m.put(ATTRIBUTE_NAME_TEXT, aProduct[i]);
    m.put(ATTRIBUTE_NAME_PR, aPrice[i]);
    m.put(ATTRIBUTE_NAME_QT, aQuantity[i]);
    data.add(m);
}

    


Ответы

Ответ 1



Смысл есть. А если в будущем вы захотите использовать не HashMap, а другую реализацию Map? Конечно, можно делать как вам вздумается. А сделано для того, чтобы можно было на лету менять конечную реализацию (к примеру, вместо HashMap использовать LinkedHashMap). Поэтому и принято оперировать интерфейсами. Чтобы не связывать свой код жестко конкретными реализациями.

Комментариев нет:

Отправить комментарий