在java中,将列表放置在另一个列表的参数中

在java中,将列表放置在另一个列表的参数中,java,Java,如果标题不清楚,我很抱歉,但我不确定如何用这么少的话来描述这个。好的,假设我们有这个声明: ArrayList<String> list = new ArrayList<String>(); //add items to list Set<String> set = new TreeSet<String>(list); ArrayList list=new ArrayList(); //将项目添加到列表中 集合=新树集合(列表); 现在,据我所

如果标题不清楚,我很抱歉,但我不确定如何用这么少的话来描述这个。好的,假设我们有这个声明:

ArrayList<String> list = new ArrayList<String>();
//add items to list
Set<String> set = new TreeSet<String>(list);
ArrayList list=new ArrayList();
//将项目添加到列表中
集合=新树集合(列表);

现在,据我所知,
set
将从
list
接收数据并对它们进行排序,因为树集就是这样做的。但是,在oracle网站上,我没有看到HashSet类中有任何构造函数将列表作为参数。因此,我不明白,如果没有定义的构造函数来接受列表作为参数,为什么这会起作用。

TreeSet
有一个构造函数接受
集合,而
List
集合(
List
扩展
集合


Java集合框架中的许多类遵循相同的概念<例如,code>ArrayList
还有一个构造函数,该构造函数接受
集合
。这使得在集合之间复制数据变得很容易。

TreeSet
有一个构造函数,它接受一个
集合
,而
列表
是一个
集合
列表
扩展了
集合


Java集合框架中的许多类遵循相同的概念<例如,code>ArrayList
还有一个构造函数,该构造函数接受
集合
。这使得在集合之间复制数据变得很容易。

看一看。这接受一个
集合
,而
数组列表
实现了
集合

看看。它接受
集合
数组列表
实现
集合

实现,而不是继承自。@davin我说的是
列表
接口,不是
数组列表
类<代码>列表是一个接口,它继承(或扩展)了
集合
接口
ArrayList
implements
Collection
。同意,“implements”也不是正确的术语,但我仍然觉得“inherits from”很有趣。扩展似乎更好。实现,而不是继承。@davin我说的是
List
接口,不是
ArrayList
类<代码>列表是一个接口,它继承(或扩展)了
集合
接口
ArrayList
implements
Collection
。同意,“implements”也不是正确的术语,但我仍然觉得“inherits from”很有趣。扩展似乎更好。您的第一行代码编写得更好
List List=new ArrayList()
,最好使用接口保存参数,除非有某种原因您想明确知道它是
ArrayList
。最好编写第一行代码
List=new ArrayList()
,最好使用接口保存参数,除非出于某种原因您想明确知道它是
ArrayList