无法将ArrayList <integer>转换为int [] </integer>

时间:2014-03-23 00:16:13

标签: java

import java.util.*;
public class Tester2
{
  public static void main(String[] args)
  {
    int[] array = new int[] {1,2,3,1,2,3};

    System.out.println(Arrays.toString(deleteElement(array, 1)));

  }

  public static int[] deleteElement(int [] array, int target)
  {
    ArrayList<Integer> a1 = new ArrayList<Integer>();

    for(int i=0; i<array.length; i++)
    {
      if (array[i] != target)
    a1.add(array[i]);
    }

    int[] returnedArray = new int[a1.size()];
    returnedArray = a1.toArray(returnedArray);

    return returnedArray;

  }  
}

当我尝试编译此代码时,出现以下错误:

找到1个错误:

文件:/Users/Hyeunjoon/Desktop/CS/A4/Tester2.java [line:25]

错误:/Users/Hyeunjoon/Desktop/CS/A4/Tester2.java:25:找不到符号

symbol:方法toArray(int [])

location:class java.util.ArrayList

任何人都可以帮助我吗?我不明白为什么我会收到此错误

1 个答案:

答案 0 :(得分:0)

忽略其他可能的改进,你有:

returnedArray = a1.toArray(returnedArray);

如果查看ArrayList<T>.toArray(T[])的文档,您会发现它需要一个T数组。在您的代码中,TIntegerint[]不是Integer[]

您必须暂时将结果存储在Integer[]中,然后逐个转换为int[](在这种情况下,您也可以避免Integer[]男人完全)。