情况是这样的。我有一个Vector<Float> v;里面存很多数据。
我不想用float []a = new float[v.size()]的方法再一个个拷贝过来,太耗时间。我看到用toArray的方法,但是都没成功。
请问有什么办法能快速将Vector中数据存到数组里吗?已知:
Vector<Float> v;
要求:
把数据转化到float []a中。要快。

解决方案 »

  1.   


    Float[] f = v.toArray(new Float[0]);
      

  2.   


    toArray方法能不能转成float[]???好像只能专程Float[]
      

  3.   

    那是不行的,float是基本类型,toArray只能转成对象型的,也就是float的封装类Float。
      

  4.   

    有啥区别啊,Float f 和 float f 里面的数据都一样啊
      

  5.   

    是呀。因为对方的接口是float[],所以一定要这个类型。有没有办法把Float[]转成float[]呢?大侠
      

  6.   

    有没有办法把Float[]转成float[]呢?大侠
      

  7.   


    Vector<Float> v = new Vector<Float>();
                float[] c2 = new float[v.size()];
                for(int i=0;i<v.size();i++){
                 c2[i]=v.get(i).floatValue();
                }
      

  8.   

    Float[] f1={};
    float[] f2={};
    for(int i=0;i<f1.length;i++){
    f2[i]=f1[i];
    }
      

  9.   


    float是基本数据类型,而Float是类
    Float是float的装箱
    java 5.0以后会自动装箱和拆箱(类型转换.,
      

  10.   

    给你个例子,你仿照写就行了。public class Test {
        public static void main(String[] args) {
            Vector<String> v = new Vector<String>();
            v.add("Google");
            v.add("Apple");
            v.add("Microsoft");
            String[] names = v.toArray(new String[v.size()]);
            for (String str : names) {
                System.out.println(str);
            }
        }
    }
      

  11.   

    补充下:float一般存储于栈空间,默认初始化为0.0;而Float对象存在堆空间,默认初始化为null
      

  12.   

    你们留意下我的题目啊...不要一个个拷贝,我这个vector很大,很废时间。另外,我要的是float[]。我也知道Float和float的差别。但是我的程序是要把float[]传给别人的接口。一定要float[]
      

  13.   

    你们留意下我的题目啊...不要一个个拷贝,我这个vector很大,很废时间。另外,我要的是float[]。我也知道Float和float的差别。但是我的程序是要把float[]传给别人的接口。一定要float[]
      

  14.   


    你们留意下我的题目啊...不要一个个拷贝,我这个vector很大,很废时间。另外,我要的是float[]。我也知道Float和float的差别。但是我的程序是要把float[]传给别人的接口。一定要float[]
      

  15.   

    Float/float [] F = v.toArray();左面的写法无所谓 自动拆箱装箱就可以了 关键是vector<float>的话 那么返回的数组里面存的是一个数组  也就是F.length == 1;如果是vector<Float>的话 返回的数组里面存放的就是一个一个的浮点数 其实就是对象   F.length == v.size();  把这个弄懂了 楼主这个题就是一句话  Float[] f = v.toArray();
      

  16.   


    Cannot cast from Float[] to float[]虽然两者理解看上去一样,但是一个是object,一个基本数据类型,其实不一样。我要的是float[],问题就在与怎么把Float[]转为float[]。
    大侠再解释下吗
      

  17.   

    Vector<Float> v = new Vector<Float>();
    v.addElement(new Float(3.2));
    v.addElement(new Float(332.1));
    Float[] f =   v.toArray(new Float[v.size()]);
    for (Float f1 : f) {
    System.out.println(f1);
    }
      

  18.   

    我就不明白了,为什么我用for循环就叫拷贝,你总的把Float转化为float吧,这个不需要时间吗?即使存在把Float[]直接转化为float[],你又确定他不是拷贝的。对楼主无语了,假如我封装了一个方法class Float{
        
         float[] TofloatValues(Vector<Float> v){
          float[] c2 = new float[v.size()];
                 for(int i=0;i<v.size();i++){
                     c2[i]=v.get(i).floatValue();
                 }
                 return c2;
         }
        }
    你只要用
    Vector<Float> v = new Vector<Float>();
    float[] a = Float.TofloatValues(v);
    有什么区别吗?
      

  19.   


    谢谢!
    看来只能这样了,但是内存承受不了两倍的大小。
    我决定还是不用Vector了。直接开辟float[]