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
.
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));
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);
Essaye ça,
ArrayList<Double> numb= new ArrayList<Double>(Arrays.asList(1.38, 2.56, 4.3));
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));
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));
Essaye ça:
List<Double> l1= new ArrayList<Double>();
l1.add(1.38);
l1.add(2.56);
l1.add(4.3);
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 ) );