Is er een manier om een ArrayList
te definiëren met het type double
? Ik heb beide geprobeerd
ArrayList list = new ArrayList<Double>(1.38, 2.56, 4.3);
en
ArrayList list = new ArrayList<Double>(1.38, 2.56, 4.3);
De eerste code liet zien dat de constructor ArrayList<Double>(double, double, double)
niet gedefinieerd is en de tweede code laat zien dat afmetingen vereist zijn na double
.
Antwoord 1, autoriteit 100%
Probeer dit:
List<Double> list = Arrays.asList(1.38, 2.56, 4.3);
die een lijst met vaste grootteretourneert.
Als u een uitbreidbare lijst nodig heeft, geeft u dit resultaat door aan de ArrayList
-constructor:
List<Double> list = new ArrayList<>(Arrays.asList(1.38, 2.56, 4.3));
Antwoord 2, autoriteit 81%
ArrayList list = new ArrayList<Double>(1.38, 2.56, 4.3);
moet worden gewijzigd in:
List<Double> list = new ArrayList<Double>();
list.add(1.38);
list.add(2.56);
list.add(4.3);
Antwoord 3, autoriteit 15%
Probeer dit,
ArrayList<Double> numb= new ArrayList<Double>(Arrays.asList(1.38, 2.56, 4.3));
Antwoord 4, autoriteit 12%
U ondervindt een probleem omdat u de ArrayList
niet kunt samenstellen en tegelijkertijd kunt invullen. U moet het ofwel maken en het vervolgens handmatig als zodanig invullen:
ArrayList list = new ArrayList<Double>();
list.add(1.38);
...
Of, als dit voor u handiger is, kunt u de ArrayList
vullen vanuit een primitieve array die uw waarden bevat. Bijvoorbeeld:
Double[] array = {1.38, 2.56, 4.3};
ArrayList<Double> list = new ArrayList<Double>(Arrays.asList(array));
Antwoord 5, autoriteit 8%
gebruiken
Doubles.asList(1.2, 5.6, 10.1);
of onveranderlijke lijst
ImmutableList.of(1.2, 5.6, 10.1);
Antwoord 6, autoriteit 8%
U kunt Arrays.asList gebruiken om een lijst te krijgen (niet noodzakelijk ArrayList) en vervolgens addAll() gebruiken om deze aan een ArrayList toe te voegen:
new ArrayList<Double>().addAll(Arrays.asList(1.38L, 2.56L, 4.3L));
Als je Java6 (of hoger) gebruikt, kun je ook de ArrayList-constructor gebruiken die een andere lijst nodig heeft:
new ArrayList<Double>(Arrays.asList(1.38L, 2.56L, 4.3L));
Antwoord 7, autoriteit 8%
1)“Onnodig ingewikkeld” is IMHO om eerst een niet-aanpasbare lijst te maken voordat de elementen aan de ArrayList worden toegevoegd.
2) De oplossing komt overeen met exact de vraag: “Is er een manier om een arrayclist te definiëren met het dubbele type? ”
Dubbel type:
double[] arr = new double[] {1.38, 2.56, 4.3};
Arrayclist:
ArrayList<Double> list = DoubleStream.of( arr ).boxed().collect(
Collectors.toCollection( new Supplier<ArrayList<Double>>() {
public ArrayList<Double> get() {
return( new ArrayList<Double>() );
}
} ) );
… en dit creëert dezelfde compacte en snelle compilatie als zijn Java 1.8 Short-Form:
ArrayList<Double> list = DoubleStream.of( arr ).boxed().collect(
Collectors.toCollection( ArrayList::new ) );
Antwoord 8, Autoriteit 4%
Probeer dit:
List<Double> l1= new ArrayList<Double>();
l1.add(1.38);
l1.add(2.56);
l1.add(4.3);
Antwoord 9
double[] arr = new double[] {1.38, 2.56, 4.3};
ArrayList<Double> list = DoubleStream.of( arr ).boxed().collect(
Collectors.toCollection( new Supplier<ArrayList<Double>>() {
public ArrayList<Double> get() {
return( new ArrayList<Double>() );
}
} ) );