java-TreeSet的这些声明之间的区别

因此,我必须在代码中使用TreeSet.

作为TreeSet< E>扩展AbstractSet< E>实现NavigableSet< E&gt ;、 Cloneable,java.io.Serializable

和界面NavigableSet< E>扩展SortedSet< E>它扩展了Set< E>

我可以使用以下三个声明中的任何一个:

NavigableSet<String> myTreeSet= new TreeSet<>();
SortedSet<String> myTreeSet= new TreeSet<>();
Set<String> myTreeSet= new TreeSet<>();

我知道我将只能访问声明中使用的接口所公开的那些方法.还有其他理由要考虑为TreeSet选择特定的声明吗?

解决方法:

如前所述,基本上是您允许他人(或您自己)使用的内容.您想与TreeSet一起使用的其他方法可能取决于实际的声明.因此,可能存在需要SortedSet的方法,但是当您将TreeSet定义为Set时,它将无法继续

上一篇:java集合类-Set接口


下一篇:java – 在TreeSet中,基于不同属性的自定义对象的排序和唯一性