我想问一下:如何在Java中将Collection
转换为List
?
答案 0 :(得分:62)
Collection<MyObjectType> myCollection = ...;
List<MyObjectType> list = new ArrayList<MyObjectType>(myCollection);
答案 1 :(得分:51)
如果您已经创建了List子类型的实例(例如,ArrayList,LinkedList),则可以使用addAll方法。
如,
l.addAll(myCollection)
许多列表子类型也可以在其构造函数中获取源集合。
答案 2 :(得分:6)
List list;
if (collection instanceof List)
{
list = (List)collection;
}
else
{
list = new ArrayList(collection);
}
答案 3 :(得分:2)
制作一个新列表,并使用Collection调用addAll
。
答案 4 :(得分:2)
感谢Sandeep把它 - 只是添加了一个空检查以避免在else语句中出现NullPointerException。
if(collection==null){
return Collections.emptyList();
}
List list;
if (collection instanceof List){
list = (List)collection;
}else{
list = new ArrayList(collection);
}
答案 5 :(得分:0)
您可以使用2种解决方案中的任何一种..但考虑是否有必要克隆您的集合,因为两个集合都将包含相同的对象引用
答案 6 :(得分:-3)
Collection
和List
是接口。您可以执行List
界面的任何实施:ArrayList LinkedList
,然后将其转回Collection
,因为它位于顶部
下面的示例显示来自ArrayList
public static void main (String args[]) {
Collection c = getCollection();
List myList = (ArrayList) c;
}
public static Collection getCollection()
{
Collection c = new ArrayList();
c.add("Apple");
c.add("Oranges");
return c;
}