DE
Java - List<Double> in double[] - boxed Double list in Array primitiver doubles konvertieren
4
points
1. Übersicht
In diesem Artikel wird gezeigt, wie kann man List<Double> in double[] auf ein paar verschiedenen Arten konvertieren.
Einfachste Möglichkeit:
List<Double> list = new ArrayList<>(Arrays.asList(1.2, 2.7, 3.9));
double[] arr = list.stream().mapToDouble(Double::doubleValue).toArray();
System.out.println(Arrays.toString(arr)); // [1.2, 2.7, 3.9]
2. Java 8 - Stream.mapToDouble verwenden - Beispiel 1
Stream.mapToDouble mit Referenzmethode.
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class Example1 {
public static void main(String[] args) {
List<Double> list = new ArrayList<>(Arrays.asList(1.2, 2.7, 3.9));
double[] arr = list.stream().mapToDouble(Double::doubleValue).toArray();
System.out.println(Arrays.toString(arr)); // [1.2, 2.7, 3.9]
}
}
Ausgabe:
[1.2, 2.7, 3.9]
3. Java 8 - Stream.mapToDouble verwenden - Beispiel 2
Stream.mapToDouble mit Identitätsfunktion.
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class Example2 {
public static void main(String[] args) {
List<Double> list = new ArrayList<>(Arrays.asList(1.2, 2.7, 3.9));
double[] arr = list.stream().mapToDouble(d -> d).toArray();
System.out.println(Arrays.toString(arr)); // [1.2, 2.7, 3.9]
}
}
Ausgabe:
[1.2, 2.7, 3.9]
4. Vor java 8 - eine explizite Iteration über die Liste verwenden
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class Example3 {
public static void main(String[] args) {
List<Double> list = new ArrayList<>(Arrays.asList(1.2, 2.7, 3.9));
double[] arr = new double[list.size()];
for (int i = 0; i < arr.length; i++) {
arr[i] = list.get(i).doubleValue();
}
System.out.println(Arrays.toString(arr)); // [1.2, 2.7, 3.9]
}
}
Ausgabe:
[1.2, 2.7, 3.9]
5. Guava verwenden
import com.google.common.primitives.Doubles;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class Example4 {
public static void main(String[] args) {
// With Guava
List<Double> list = new ArrayList<>(Arrays.asList(1.2, 2.7, 3.9));
double[] arr = Doubles.toArray(list);
System.out.println(Arrays.toString(arr)); // [1.2, 2.7, 3.9]
}
}
Ausgabe:
[1.2, 2.7, 3.9]
Maven-Abhängigkeit - Guava Version 28.0
<!-- https://mvnrepository.com/artifact/com.google.guava/guava -->
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>28.0-jre</version>
</dependency>
6. Apache commons lang3 verwenden
import org.apache.commons.lang3.ArrayUtils;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class Example5 {
public static void main(String[] args) {
List<Double> list = new ArrayList<>(Arrays.asList(1.2, 2.7, 3.9));
Double[] arrBoxed = list.toArray(new Double[list.size()]);
double[] arr = ArrayUtils.toPrimitive(arrBoxed);
System.out.println(Arrays.toString(arr)); // [1.2, 2.7, 3.9]
}
}
Ausgabe:
[1.2, 2.7, 3.9]
Maven-Abhängigkeit - Apache commons lang3 Version 3.8.1
<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-lang3 -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.8.1</version>
</dependency>
Zusammengeführte Fragen
- Java - wie man wirft List<Double> in double[]
- Java - wie konvertiert man List<Double> in Array primitiver double Werten
- Wie konvertiert man List von Double Objekten in Array primitiver Doubles