Java-arrayLijst van dubbels

Is er een manier om een ArrayListte 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 ArrayListniet 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 ArrayListvullen 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%

guave

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>() );
      }
    } ) );

Other episodes