【发布时间】:2015-08-13 18:49:52
【问题描述】:
我们要添加到 TreeSet 中的类的对象,该类必须实现 Comparable 接口 但是 Number 类没有实现 Comparable 那么 TreeSet 如何允许 Number 被添加。
Number n1= 11;
Number n2= 12;
Number n3= 13;
Set<Number> set = new TreeSet<>();
set.add(n1);
set.add(n2);
set.add(n3);
【问题讨论】:
-
TreeSet 不要求它的通用元素是
Comparable's。 -
为什么你认为 Collection 的元素需要实现 Comparable 接口?
-
我在 TreeSet 中尝试了带有类 T(它不实现 Comparable 接口)的相同程序,它抛出了 java.lang.ClassCastException。但是在上面的程序中,我使用了没有实现 Comparable 接口的 Number 仍然可以正常工作。这两件事是矛盾的。在一种情况下,它正在使用一个不实现 Comparable 接口的类,但在另一种情况下,它不是。
标签: java collections wrapper comparable