【问题标题】:How to add list( array of strings) and arrayList using collections?如何使用集合添加列表(字符串数组)和arrayList?
【发布时间】:2015-04-04 00:02:56
【问题描述】:

我正在尝试将字符串数组添加到 arrayList 。下面是代码:

import java.util.ArrayList;
import java.util.List;
import java.util.Collections;
import java.util.Arrays;

class AddAll{
    public static void main(String[] args){
        String[] words = {"apples","beef","corn","ham"};
        List<String> list = Arrays.asList(words);

        ArrayList<String> arrayList = new ArrayList<String>();
        arrayList.add("Youtube");
        arrayList.add("Google");
        arrayList.add("Facebook");

        for(String x : arrayList){
        System.out.printf("%s ",x);
        }
        System.out.println();

        Collections.addAll(arrayList,list);

      for(String x : arrayList){
        System.out.printf("%s ",x);
    }
  }
 }

但是,在编译期间它会抛出以下错误。我无法弄清楚如何解决它?有人可以帮我处理这段代码吗?

  AddAll.java:21: error: method addAll in class Collections cannot be applied to           given types;
    Collections.addAll(arrayList,list);
               ^
  required: Collection<? super T>,T[]
   found: ArrayList<String>,List<String>
  reason: inferred type does not conform to upper bound(s)
  inferred: List<String>
   upper bound(s): String,Object
   where T is a type-variable:
    T extends Object declared in method <T>addAll(Collection<? super T>,T...)

1 个错误

【问题讨论】:

  • 你在哪里看到/找到像Collections.addAll(arrayList,list);这样的方法?
  • 建议:如果您收到一个编译错误,告诉您无法找到或应用某个方法... 阅读 javadocs ... 了解该方法是否实际存在,并检查您是否使用正确数量和类型的参数调用它。
  • 嗨斯蒂芬,谢谢你的建议。我只是在学习过程中。根据您的建议,我浏览了 javadocs,我可以看到该方法存在。现在的问题是如何使用它? :(
  • 以下解决了这个问题:arrayList.addAll(list);

标签: java list arraylist collections


【解决方案1】:

Collections 类中没有方法可以接受 ListCollection 类型的两个参数。

List#add(Collection) 可以满足您的要求

arrayList.addAll(list);

【讨论】:

  • 谢谢 Sotirios。看起来我正在浏览一些旧的参考资料。
猜你喜欢
  • 2013-02-25
  • 1970-01-01
  • 2015-02-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-16
  • 2019-10-22
相关资源
最近更新 更多