将集合转换为列表

时间:2010-03-18 15:08:30

标签: java collections

我想问一下:如何在Java中将Collection转换为List

7 个答案:

答案 0 :(得分:62)

Collection<MyObjectType> myCollection = ...;
List<MyObjectType> list = new ArrayList<MyObjectType>(myCollection);

请参阅Collections trail中的Java tutorials

答案 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)

CollectionList是接口。您可以执行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;
}