2017-11-16 4 views
-1

Wie konvertiert man ArrayList in Double6 Array in Java6?Konvertieren ArrayList in Double Array in Java

List lst = new ArrayList(); 
double[] dbl=null; 
lst.add(343.34); 
lst.add(432.34); 

Wie obige Liste in Array konvertieren?

+0

Haben Sie etwas versucht? Hast du gesucht? Dies ist eine häufige Frage, die Sie eine Menge Antwort finden können. Auch, fügen Sie bitte einen Typ zur 'Liste' wie 'Liste ' ... es wird unordentlich sein, wenn Sie nicht – AxelH

+0

@ TrầnAnhNam nicht wirklich ein Duplikat tun. In diesem Post enthält die ArrayList String-Objekte, hier enthält sie Double-Objekte. – Dukeling

+0

Doppelte von [Wie aus der Liste zu Double \ [\] in Java zu werfen?] (Https://stackoverflow.com/q/6018267) – Dukeling

Antwort

2

Sie können die List direkt in eine Array der Wrapper-Klasse konvertieren. Versuchen Sie Folgendes:

List<Double> lst = new ArrayList<>(); 
Double[] dblArray = new Double[lst.size()]; 
lst.add(343.34); 
lst.add(432.34); 
dblArray = lst.toArray(dblArray); 
+1

keine Angabe der Größe erforderlich. nur 'dblArray = lst.toArray (neu Double [0])' – Nonika

+1

@Nonika Wenn Sie die Größe nicht angeben (oder die Größe nicht korrekt ist), wird automatisch ein neues Array erstellt. Dies ist normalerweise nicht wichtig, aber es ist immer noch ein wesentlicher Unterschied, dass Ihr Code 2 Arrays erstellt, während der Code in der Antwort nur einen erzeugt. – Kayaman

-1

Damit Sie die Liste machen, und fügen Sie, was Ihnen gefällt. Dann machen Sie das Array die gleiche Größe und füllen Sie von vorne nach hinten.

public static void main(String[] args){ 
     List lst = new ArrayList(); 
     lst.add(343.34); 
     lst.add(432.34); 
     System.out.println("LST " + lst); 

     double[] dbl= new double[lst.size()]; 
     int iter = 0; 
     for (Object d: lst 
      ) { 
      double e = (double) d; 
      dbl[iter++] = e; 
     } 
     System.out.println("DBL " + Arrays.toString(dbl)); 
    } 

Ergebnis: LST [343.34,432.34] DBL [343.34,432.34]

0
List<Number> lst = new ArrayList<>(); 
Collections.addAll(lst, 3.14, -42); 
double[] dbl = lst.stream() 
    .map(Number::cast) // Or possibly Double::cast when List lst. 
    .mapToDouble(Number::doubleValue) 
    .toArray(); 

List<Double> lst = new ArrayList<>(); 
Collections.addAll(lst, 3.14, -42.0); 
double[] dbl = lst.stream() 
    .mapToDouble(Double::doubleValue) 
    .toArray(); 

Die mapToDouble wandelt ein Objekt Stream zu einem DoubleStream primitiven verdoppelt halten.

Verwandte Themen