2010-03-25 65 views

回答

5

编译字面答案是因为apply()处于++,这是在SortedSet定义的术语implemented,因此返回SortedSet++然后继续使用+,其中定义在TreeSet,所以如果它很关键(尽管我不会推荐它,因为它依赖于实现并可能随时间而改变!),所以您可以将其重新转换回TreeSet

你从TreeSet中需要什么,你不能从SortedSet中获得?

我不确定设计决策背后的基本原理是什么,尽管看起来它已经在2.8版本中改变了。

+0

我我不想要'TreeSet',我不会要求'TreeSet'对吗?应该'List(1,2,3)'返回'Iterable'?我使用'SortedSet'的主要问题是我无法从中删除一个元素,并保持它的类型为'SortedSet'。你实际上在这里说的是“是的,先生,这是一个包”;-)。 – 2010-03-25 11:11:26

+0

是的,这当然是一个有效的用例,我没有注意到很多这些方法在'SortedSet'上没有被覆盖。可能值得在邮件列表中询问API设计。同时,您可以下载结果或使用'TreeSet.empty'和'+'构建设置(如您可能已经知道的那样)。 – 2010-03-26 03:46:30