为什么我没有使用ArrayList的addAll方法?

时间:2017-03-14 17:20:04

标签: java android

代码:

private void Fundc(Byte[] bytes)
{
    ArrayList<Byte> dataCollection = new ArrayList<Byte>(1024);


    dataCollection.addAll(bytes);   // **error ... can't understand why** 

 }

为什么我不能将字节数组添加到我的ArrayList中?

3 个答案:

答案 0 :(得分:3)

Arrays!= ArrayLists

试试这个:

dataCollection.addAll(Arrays.asList(bytes));

答案 1 :(得分:2)

因为ArrayList#addAll(Collection<? extends E> c)需要集合作为输入。字节数组Byte[] bytes不是集合,您需要使用解决方案1或解决方案2:

  1. 逐个添加数组的每个元素
  2. 将数组转换为列表,然后将它们全部添加
  3. 以下是代码:

    // solution 1: add each of them
    for (Byte byte : bytes) {
        dataCollection.add(byte);
    }
    
    // solution 2: add them all
    dataCollection.addAll(Arrays.asList(bytes));
    

答案 2 :(得分:1)

因为您尝试添加数组而不是 ArrayList 。 你应该这样做:

dataCollection.addAll(Arrays.asList(bytes));