两次通话之间有什么区别:
Set<Record> instances = new HashSet<Record>(); - on one hand
HashSet<Record> instances = new HashSet<Record>(); - on other hand
答案 0 :(得分:0)
在第一种情况下,您可以将instances
重新分配给Set<Record>
的任何子类型的实例。在第二种情况下,您只能将instances
重新分配给HashSet<Record>
子类型的实例。
答案 1 :(得分:0)
HashSet
实现了接口Set
。两个语句都将HashSet存储在变量实例中(没有区别,两个语句都存储相同的数据)。
然而,第一个语句将HashSet
存储在Set
中。这有一些优点,例如您可以在不更改其他代码的情况下将HashSet
更改为TreeSet
。