将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中的任何一种..但考虑是否有必要克隆你的集合,因为这两个集合将包含相同的对象引用
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; }