# List<Double> oder Double[] in double[] zu konvertieren



## sirbender (21. Jul 2008)

Ich weiss schon dass man immer einen neuen double[] erstellen und dann elementweise die Werte rueberkopieren kann. Gibt es aber keine bessere Methode eine List<Double> oder Double[] in double[] zu konvertieren?


----------



## tfa (21. Jul 2008)

List.toArray()
List.toArray(T[] array)


----------



## Guest (21. Jul 2008)

tfa hat gesagt.:
			
		

> List.toArray()
> List.toArray(T[] array)



in einen double[] ???
hast du das auch wirklich getestet?

list.toArray(new Double[0]) geht, aber nicht list.toArray(new double[0]) 

Was mach ich fallsch?


----------



## SlaterB (21. Jul 2008)

selbst wenn diese Operation ginge, würde intern auch nur ein Array erstellt und die Werte kopiert werden?
was stört dich an dieser Elementaren Operation?

wie kann man erhoffen, ein double[] zu erhalten, ohne ein double[] zu erstellen?!


----------



## tfa (21. Jul 2008)

Richtig, in double[] geht es nicht - ich hatte die Frage falsch gelesen. Es sollte wegen Autoboxing aber auch nicht nötig sein, es sei denn, irgendeine API benötigt zwingend double[].


----------



## Guest (21. Jul 2008)

tfa hat gesagt.:
			
		

> Richtig, in double[] geht es nicht - ich hatte die Frage falsch gelesen. Es sollte wegen Autoboxing aber auch nicht nötig sein, es sei denn, irgendeine API benötigt zwingend double[].



ja 

Ich benutze ein Framework das in einem Contruktor zwingend ein double[] will.


----------



## thE_29 (21. Jul 2008)

Bleibt dir nix anders übrig als das hier:


```
Vector<Double> dVec = new Vector<Double>();
    dVec.add(39.9);
    dVec.add(35.3);
    double _du[] = new double[dVec.size()];
    for(int x = 0; x != dVec.size(); x++)
    {
      _du[x] = dVec.get(x) == null ? 0 : dVec.get(x);
    }
```

Und toArray muss ja auch das ganze Array durchgehen! Wird also wahrscheinlich nur bisi (wenn überhaupt) langsamer.


----------

