从List <Integer>转换为array float []

tre*_* hh 0 java arraylist valueconverter

我有一个列表如下:

List<Integer> arrInt={2,3,5};
Run Code Online (Sandbox Code Playgroud)

我想将这个arraylist转换为数组float.

float[] result={2,3,5};
Run Code Online (Sandbox Code Playgroud)

我的代码:

    public float[] convertIntToFloat(List<Integer> arr)
    {
      List<Float> arrResult=new ArrayList<Float>();

      for(int i=0;i<arr.size();i++)
      {
        float x=i;
        arrResult.add(x);
      }

      float result[]=arrResult.toArray( new float[arr.size()]);  //Error

      return result;
    }
Run Code Online (Sandbox Code Playgroud)

但它在我的代码中显示错误,如上所述.你能帮助我吗?

Roh*_*ain 7

List.toArray(T[]) 采用Wrapper类型的数组,而不是基本类型.

你应该这样做:

Float result[] = arrResult.toArray( new Float[arr.size()]);  
Run Code Online (Sandbox Code Playgroud)

但是,这真的不是必需的.因为,现在你必须将它转换为原始类型数组.那太对了?

你可以直接创建一个float[]数组,而不是通过一个数组ArrayList<Float>.只需将您的arrResults声明更改为:

float[] arrResults = new float[arr.size()];
Run Code Online (Sandbox Code Playgroud)

在for循环中,使用以下命令向数组添加元素:

for(int i = 0; i < arr.size(); ++i) {
    arrResults[i] = arr[i];
}
Run Code Online (Sandbox Code Playgroud)