PL
Java - przekonwertuj List <Double> na double[] - boxed Double list na tablicę prymitywów podwójnych
9
points
1. Szybki przegląd
W tym poście omówimy, jak konwertować List <Double> na double[] na kilka różnych sposobów. Najprostrzy sposób:
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. Korzystanie z języka Java 8 - Stream.mapToDouble przykład 1
Stream.mapToDouble z odniesieniem do metody.
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]
}
}
Wynik:
[1.2, 2.7, 3.9]
3. Korzystanie z języka Java 8 - Stream.mapToDouble przykład 2
Stream.mapToDouble z funkcją tożsamości
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]
}
}
Wynik:
[1.2, 2.7, 3.9]
4. Przed Java 8 - użycie jawnej iteracji po liście
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]
}
}
Wynik:
[1.2, 2.7, 3.9]
5. Korzystanie z Guavy
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]
}
}
Wynik:
[1.2, 2.7, 3.9]
Zależność Maven - wersja Guava 28.0.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. Korzystanie z Apache commons lang3
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]
}
}
Wynik:
[1.2, 2.7, 3.9]
Zależność Maven - Apache commons lang3 w wersji 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>
Połączone pytania
- Java - jak rzutować List <Double> na Double[]
- Java - jak przekonwertować List <Double> na tablicę pierwotnych wartości podwójnych
- Jak przekonwertować listę obiektów Double na tablicę podwójnych prymitywów