И еще, кто нибудь может подробно объяснить чем отличается Set<String> set1 = new HashSet<String>(); и HashSet<String> set1 = new HashSet<String>();?
Asked
Active
Viewed 557 times
-3
Anton Sorokin
- 7,028
-
Вопросы использования функций сайта следует задавать на мете – pavlofff Nov 08 '16 at 07:10
1 Answers
5
java.util.Set - интерфейс, а не класс.HashSet имплементирует интерфейс Set.
Set set1 = new HashSet(); создает объект типа HashSet и присваивает ссылку на объекту переменной типа Set.
HashSet set1 = new HashSet(); создает объект типа HashSet и присваивает ссылку на объекту переменной типа HashSet.
Т.е эти два примеры инициализации отличаются способом хранения HashSet.Например, инициализация Set set1 = new HashSet(); позволяет "переделать" HashSet в TreeSet.
P.S. Забыл добавить, что в ООП считается хорошим тоном объявлять переменные с типом интерфейса, т.к. код нужно писать в наиболее общем виде.
FCh
- 565