因此,我必须在代码中使用TreeSet.
作为TreeSet< E>扩展AbstractSet< E>实现NavigableSet< E> ;、 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时,它将无法继续