-3

И еще, кто нибудь может подробно объяснить чем отличается Set<String> set1 = new HashSet<String>(); и HashSet<String> set1 = new HashSet<String>();?

1 Answers1

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