treeset医生 public TreeSet(Collection<? extends E> c) 构造一个新的树集,其中包含指定集合中的元素,并根据其元素的自然顺序进行排序。插入到集合中的所有元素都必须实现可比较的接口。此外,所有这些元素必须是相互可比较的:e1.compareto(e2)不能为集合中的任何元素e1和e2抛出classcastexception。 注意“按元素的自然顺序排序” public TreeSet(SortedSet<E> s) 构造一个新的树集,该树集包含与指定的排序集相同的元素并使用相同的顺序。
3条答案
按热度按时间e5njpo681#
从接受
SortedSet
:构造一个新的树集,该树集包含与指定的排序集相同的元素并使用相同的顺序。
初始化时
TreeSet
从Collection
,使用元素的自然顺序,从接受Collection
:构造一个新的树集,其中包含指定集合中的元素,并根据其元素的自然顺序进行排序。
tvmytwxo2#
treeset医生
public TreeSet(Collection<? extends E> c)
构造一个新的树集,其中包含指定集合中的元素,并根据其元素的自然顺序进行排序。插入到集合中的所有元素都必须实现可比较的接口。此外,所有这些元素必须是相互可比较的:e1.compareto(e2)不能为集合中的任何元素e1和e2抛出classcastexception。注意“按元素的自然顺序排序”
public TreeSet(SortedSet<E> s)
构造一个新的树集,该树集包含与指定的排序集相同的元素并使用相同的顺序。woobm2wo3#
让我们用两种不同的方式运行这个程序,
首先是下面(这里我们实现的是comparator)
对于这个程序,它在线程“main”java.lang.classcastexception中抛出异常:test.wtest$user不能转换为java.lang.com
因为此构造函数期望用户实现java.util.interface。
第二次运行,如果您将用户类实现更改为
代码运行得很好!注意实现的不同,现在我们实现java.lang.comparable接口。
但是treeset类同时使用这两种方法,或者使用comparator,或者comparable。因此,构造函数的选择完全取决于对象的实现类型。