将collections集转换为列表

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

如果您已经创build了List子types的实例(例如,ArrayList,LinkedList),那么可以使用addAll方法。

例如,

 l.addAll(myCollection) 

许多列表子types也可以在其构造函数中使用源集合。

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

请参阅Java教程中的Collectionspath 。

 List list; if (collection instanceof List) { list = (List)collection; } else { list = new ArrayList(collection); } 

创build一个新的列表,并调用addAll与集合。

感谢Sandeep把它 – 只是添加一个空检查,以避免在其他语句中的NullPointerException。

 if(collection==null){ return Collections.emptyList(); } List list; if (collection instanceof List){ list = (List)collection; }else{ list = new ArrayList(collection); } 

你可以使用2种解决scheme中的任何一种..但考虑是否有必要克隆你的集合,因为这两个集合将包含相同的对象引用

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; }