TreeSets基于其界面的区别

时间:2017-01-29 14:59:03

标签: java collections

两个TreeSet之间有什么区别吗?:

Set<String> s = new TreeSet<String>();
SortedSet<String> s = new TreeSet<String>();

3 个答案:

答案 0 :(得分:2)

差异是对s类型共享的方法有效(如果你不投射它)。但对象真实类型是相同的。

答案 1 :(得分:0)

致电new HashSet<String>()将始终创建一个空的HashSet。虽然这些都是不同的实例,但它们是相同的,无论您是将它们分配给HashSetSet还是普通的Object

但请注意,HashSet a SortedSet,问题中的第二个语句将导致编译错误。

答案 2 :(得分:-2)

只有他们的明显类型不同。由于他们的真实类型是相同的,他们的行为将是相同的。

它类似于:

Integer i = 42;
Object o = i;
String s1 = i.toString(); // "42"
String s2 = o.toString(); // "42"