PT
Java - converter List<Double> para double[] - Lista dupla em caixa para matriz de duplos primitivos
3
points
1. Visão geral
Neste post, abordamos como converter uma matriz dupla em Double ArrayList de algumas maneiras diferentes.
Maneira mais simples de fazer isso:
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. Usando Java 8 - Stream.mapToDouble exemplo 1
Stream.mapToDouble com referência de método.
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]
}
}
Resultado:
[1.2, 2.7, 3.9]
3. Usando Java 8 - Stream.mapToDouble exemplo 2
Stream.mapToDouble com função de identidade.
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]
}
}
Resultado:
[1.2, 2.7, 3.9]
4. Antes do java 8 - usando iteração explícita na lista
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]
}
}
Resultado:
[1.2, 2.7, 3.9]
5. Usando Guava
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]
}
}
Resultado:
[1.2, 2.7, 3.9]
Maven dependency - Guava versão 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. Usando 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]
}
}
Resultado:
[1.2, 2.7, 3.9]
Maven dependency - Apache commons lang3 versão 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>
Perguntas mescladas
- Java - como converter uma matriz dupla em Double ArrayList
- Java - como converter Lista<Double> para arranjos de valores duplos primitivos
- Como converter lista de objetos duplos em arranjos de duplas primitivas