将集合转换为列表

发布于 2024-08-25 06:00:35 字数 63 浏览 6 评论 0原文

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

I would like to ask: how do you convert a Collection to a List in Java?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(7

破晓 2024-09-01 06:00:35
Collection<MyObjectType> myCollection = ...;
List<MyObjectType> list = new ArrayList<MyObjectType>(myCollection);

请参阅 Java 教程

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

See the Collections trail in the Java tutorials.

秋心╮凉 2024-09-01 06:00:35

如果您已经创建了 List 子类型的实例(例如,ArrayList、LinkedList),则可以使用 addAll 方法。

例如,

l.addAll(myCollection)

许多列表子类型也可以在其构造函数中获取源集合。

If you have already created an instance of your List subtype (e.g., ArrayList, LinkedList), you could use the addAll method.

e.g.,

l.addAll(myCollection)

Many list subtypes can also take the source collection in their constructor.

转瞬即逝 2024-09-01 06:00:35
List list;
if (collection instanceof List)
{
  list = (List)collection;
}
else
{
  list = new ArrayList(collection);
 }
List list;
if (collection instanceof List)
{
  list = (List)collection;
}
else
{
  list = new ArrayList(collection);
 }
初懵 2024-09-01 06:00:35

创建一个新列表,然后使用 Collection 调用 addAll

Make a new list, and call addAll with the Collection.

很酷又爱笑 2024-09-01 06:00:35

感谢 Sandeep 提出的问题 - 刚刚添加了一个 null 检查以避免 else 语句中出现 NullPointerException。

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

Thanks for Sandeep putting it- Just added a null check to avoid NullPointerException in else statement.

if(collection==null){
  return Collections.emptyList();
}
List list;
if (collection instanceof List){
  list = (List)collection;
}else{
  list = new ArrayList(collection);
}
可是我不能没有你 2024-09-01 06:00:35

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

you can use either of the 2 solutions .. but think about whether it is necessary to clone your collections, since both the collections will contain the same object references

瘫痪情歌 2024-09-01 06:00:35

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

Collection and List are interfaces. You can take any Implementation of the List interface: ArrayList LinkedList and just cast it back to a Collection because it is at the Top

Example below shows casting from 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;
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文