从ArrayList转换为Collection

时间:2012-02-05 03:35:02

标签: java collections

我在这次转换中遇到了困难。我不知道是否存在语法错误或者甚至不可能。

我需要转换 -

private static final List<Contact> CONTACTS = Arrays.asList(
        new Contact("text1", "name1"),
        new Contact("text2", "name2"),
        new Contact("text3", "name3"));

要 -

Collection c = new ArrayList(Arrays.asList(--?--))

- ? - - &gt; (我不明白这里会发生什么)

通过这样做,我打算避免UnsupportedOperationException。 感谢任何帮助,谢谢!

嘿,谢谢大家,我明白了! 这工作 -
解决方案:

List<? extends Contact> col = new ArrayList<Contact>(CONTACTS);

4 个答案:

答案 0 :(得分:10)

public interface List
extends Collection

You don't need to do anything。或者您需要ArrayList不支持的某些特定操作吗?

答案 1 :(得分:5)

您无需执行任何操作来执行该转换,这有效:

List<Contact> CONTACTS = new ArrayList<String>();
// fill CONTACTS
Collection<Contact> c = CONTACTS;

CollectionList的超级接口,如果对象实现List,它还将实现Collection

答案 2 :(得分:1)

这样做有效:

private static final Collection<String> c = new ArrayList<String>(
                                                Arrays.asList("a", "b", "c"));

因此我建议如下:

private static final Collection<Contact> = new ArrayList<Contact>(
                       Arrays.asList(new Contact("text1", "name1")
                                     new Contact("text2", "name2")));

答案 3 :(得分:1)

我正在更新它作为我正在寻找的答案。谢谢大家的回复!

List<? extends Contact> col = new ArrayList<Contact>(CONTACTS);