web-dev-qa-db-fra.com

Liste de tableaux Java en double

Est-il possible de définir une ArrayList avec le type double? J'ai essayé les deux 

ArrayList list = new ArrayList<Double>(1.38, 2.56, 4.3);

et 

ArrayList list = new ArrayList<double>(1.38, 2.56, 4.3);

Le premier code indiquait que le constructeur ArrayList<Double>(double, double, double) était indéfini et le second indiquait que les dimensions étaient requises après double.

11
Robert Lu

Essaye ça:

List<Double> list = Arrays.asList(1.38, 2.56, 4.3);

qui retourne une taille fixe liste.

Si vous avez besoin d'une liste extensible, transmettez ce résultat au constructeur ArrayList:

List<Double> list = new ArrayList<>(Arrays.asList(1.38, 2.56, 4.3));
23
Bohemian
ArrayList list = new ArrayList<Double>(1.38, 2.56, 4.3);

doit être changé pour:

List<Double> list = new ArrayList<Double>();
list.add(1.38);
list.add(2.56);
list.add(4.3);
20
Alex Gittemeier

Essaye ça,

ArrayList<Double> numb= new ArrayList<Double>(Arrays.asList(1.38, 2.56, 4.3));
4
Rohan

Vous rencontrez un problème car vous ne pouvez pas construire la ArrayList et le peupler en même temps. Vous devez soit le créer, puis le remplir manuellement de la manière suivante:

ArrayList list = new ArrayList<Double>();
list.add(1.38);
...

Sinon, si cela vous convient plus facilement, vous pouvez renseigner la variable ArrayList à partir d'un tableau primitif contenant vos valeurs. Par exemple:

Double[] array = {1.38, 2.56, 4.3};
ArrayList<Double> list = new ArrayList<Double>(Arrays.asList(array));
3
voidHead

Vous pouvez utiliser Arrays.asList pour obtenir une liste (pas nécessairement ArrayList), puis utiliser addAll () pour l'ajouter à un ArrayList:

new ArrayList<Double>().addAll(Arrays.asList(1.38L, 2.56L, 4.3L));

Si vous utilisez Java6 (ou supérieur), vous pouvez également utiliser le constructeur ArrayList qui prend une autre liste:

new ArrayList<Double>(Arrays.asList(1.38L, 2.56L, 4.3L));
2
Itay Maman

Essaye ça: 

 List<Double> l1= new ArrayList<Double>();
 l1.add(1.38);
 l1.add(2.56);
 l1.add(4.3);
1
Manish Doshi

Utiliser goyave

Doubles.asList(1.2, 5.6, 10.1);

ou liste immuable

ImmutableList.of(1.2, 5.6, 10.1);
1
Sergii Shevchyk

1) " Inutilement compliqué " demande à IMHO de créer d’abord une liste non modifiable avant d’ajouter ses éléments à la liste ArrayList.

2) La solution correspond exactement à la question: " Est-il possible de définir un ArrayList avec le type double? "

double type:

double[] arr = new double[] {1.38, 2.56, 4.3};

ArrayList:

ArrayList<Double> list = DoubleStream.of( arr ).boxed().collect(
    Collectors.toCollection( new Supplier<ArrayList<Double>>() {
      public ArrayList<Double> get() {
        return( new ArrayList<Double>() );
      }
    } ) );

… Et cela crée la même compilation compacte et rapide que sa version abrégée Java 1.8:

ArrayList<Double> list = DoubleStream.of( arr ).boxed().collect(
    Collectors.toCollection( ArrayList::new ) );
1
Kaplan