Languages
[Edit]
PL

Java - przekonwertuj List <Double> na double[] - boxed Double list na tablicę prymitywów podwójnych

9 points
Created by:
Sylwia
3590

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

  1. Java - jak rzutować List <Double> na Double[]
  2. Java - jak przekonwertować List <Double> na tablicę pierwotnych wartości podwójnych
  3. Jak przekonwertować listę obiektów Double na tablicę podwójnych prymitywów

Bibliografia

  1. Stream.mapToDouble - Java 8 docs
  2. Doubles.toArray - Guava docs
  3. ArrayUtils.toPrimitive - Apache commons lang3 docs
Donate to Dirask
Our content is created by volunteers - like Wikipedia. If you think, the things we do are good, donate us. Thanks!
Join to our subscribers to be up to date with content, news and offers.
Native Advertising
🚀
Get your tech brand or product in front of software developers.
For more information Contact us
Dirask - we help you to
solve coding problems.
Ask question.

❤️💻 🙂

Join