很抱歉,如果标题不清楚,但我不确定如何用少量的单词来描述。好吧,假设我们有这个声明:
ArrayList<String> list = new ArrayList<String>();
//add items to list
Set<String> set = new TreeSet<String>(list);
现在,根据我的理解,set
将从list
接收数据并对其进行排序,因为这就是TreeSet的功能。但是,在oracle网站上,我没有在HashSet类中看到任何以List作为参数的构造函数。所以,如果没有定义的构造函数接受List作为参数,我不明白为什么会这样。
答案 0 :(得分:4)
TreeSet
有一个带Collection
的构造函数,List
一个Collection
(List
extends {{1 }})。
Java集合框架中的许多类遵循相同的概念。例如,Collection
也有一个带ArrayList
的构造函数。这样可以轻松地在集合之间复制数据。
答案 1 :(得分:0)
看看TreeSet(Collection c)。这会接受Collection
和ArrayList
实施Collection
。