从List <integer>转换为array float [] </integer>

时间:2013-07-28 08:18:35

标签: java arraylist valueconverter

我有一个列表如下:

List<Integer> arrInt={2,3,5};

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

float[] result={2,3,5};

我的代码:

    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;
    }

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

4 个答案:

答案 0 :(得分:7)

List.toArray(T[])为Wrapper类型提取数组,而不是基本类型。

你应该这样做:

Float result[] = arrResult.toArray( new Float[arr.size()]);  

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

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

即可
float[] arrResults = new float[arr.size()];

在for循环中,使用:

将元素添加到数组中
for(int i = 0; i < arr.size(); ++i) {
    arrResults[i] = arr[i];
}

答案 1 :(得分:0)

直接创建float数组:

public float[] convertIntToFloat(List<Integer> arr)
{
  float[] arrResult = new float[arr.size()];
  for(int i=0;i<arr.size();i++)
  {
    arrResult[i] = (float) arr[i];
  }

  return arrResult;
}

答案 2 :(得分:0)

Java中的通用是有限的。您不能使用(new float [])作为toArray的参数。请改用(new Float [])。 但是,事实上,正确的工具应该是:

public float[] convertIntToFloat(List<Integer> arr)
{
  float result = new float[arr.size()];

  for(int i = 0; i < arr.size(); ++i)
  {
      result[i] = arr.get(i);
  }

  return result;
}

答案 3 :(得分:0)

这样做:

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

      for(int i=0;i<arr.size();i++)
      {
        float x=arr.get(i);
//      float x=i;       //Here you are retrieving index instead of value 

        arrResult.add(x);
      }

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

      return result;
    }