PL
Java - przekonwertuj double[] na List<Double> - pierwotna podwójna tablica na listę obiektów
6
points
Opis problemu
// Mamy: double[] arr = {1.2, 2.7, 3.9}; // Chcemy przekonwertować tę tablicę na listę: List<Double> list; // [1.2, 2.7, 3.9]
1. Najlepsze rozwiązanie - DoubleStream.of
(Java 8)
double[] arr = {1.2, 2.7, 3.9};
List<Double> list = DoubleStream.of(arr).boxed().collect(Collectors.toList());
System.out.println(list); // [1.2, 2.7, 3.9]
Wynik:
[1.2, 2.7, 3.9]
2. DoubleStream.of
+ zwrot ArrayList (Java 8)
Zwrot wymaganej implementacji np ArrayList
lub HashSet
double[] arr = {1.2, 2.7, 3.9};
ArrayList<Double> list = DoubleStream.of(arr).boxed()
.collect(Collectors.toCollection(ArrayList::new));
System.out.println(list); // [1.2, 2.7, 3.9]
Wynik:
[1.2, 2.7, 3.9]
3. Jawna iteracja po tablicy (before Java 8)
double[] arr = {1.2, 2.7, 3.9};
List<Double> list = new ArrayList<>();
for (double no : arr) {
list.add(Double.valueOf(no));
// we can also just add primitive double
}
System.out.println(list); // [1.2, 2.7, 3.9]
Wynik:
[1.2, 2.7, 3.9]
4. Doubles.asList
(Guava)
double[] arr = {1.2, 2.7, 3.9};
List<Double> list = Doubles.asList(arr);
System.out.println(list); // [1.2, 2.7, 3.9]
Wynik:
[1.2, 2.7, 3.9]
5. ArrayUtils.toObject
(Apache commons lang3)
double[] arr = {1.2, 2.7, 3.9};
Double[] doubleArray = ArrayUtils.toObject(arr);
List<Double> list = Arrays.asList(doubleArray);
System.out.println(list); // [1.2, 2.7, 3.9]
Wynik:
[1.2, 2.7, 3.9]
Podsumowanie - w Javie możemy zamienić double[] na List<Double> przez:
- Najlepsze rozwiązanie -
DoubleStream.of
(Java 8) DoubleStream.of
+ zwrot ArrayList (Java 8)- Jawna iteracja po tablicy (before Java 8)
Doubles.asList
(Guava)ArrayUtils.toObject
(Apache commons lang3)