Si j'avais: ArrayList<Double> m = new ArrayList<Double>();
avec les doubles valeurs à l'intérieur, comment dois-je faire pour additionner tous les éléments ArrayList?
public double incassoMargherita()
{
double sum = 0;
for(int i = 0; i < m.size(); i++)
{
}
return sum;
}
comme?
Deux voies:
Utilisez des index:
double sum = 0;
for(int i = 0; i < m.size(); i++)
sum += m.get(i);
return sum;
Utilisez le style "pour chaque":
double sum = 0;
for(Double d : m)
sum += d;
return sum;
Utilisation de Java 8 flux) :
double sum = m.stream()
.mapToDouble(a -> a)
.sum();
System.out.println(sum);
Je ne l'ai pas testé mais ça devrait marcher.
public double incassoMargherita()
{
double sum = 0;
for(int i = 0; i < m.size(); i++)
{
sum = sum + m.get(i);
}
return sum;
}
Pas très difficile, utilisez simplement m.get(i)
pour obtenir la valeur de la liste.
public double incassoMargherita()
{
double sum = 0;
for(int i = 0; i < m.size(); i++)
{
sum += m.get(i);
}
return sum;
}
Version Java 8+ pour Integer
, Long
, Double
et Float
List<Integer> ints = Arrays.asList(1, 2, 3, 4, 5);
List<Long> longs = Arrays.asList(1L, 2L, 3L, 4L, 5L);
List<Double> doubles = Arrays.asList(1.2d, 2.3d, 3.0d, 4.0d, 5.0d);
List<Float> floats = Arrays.asList(1.3f, 2.2f, 3.0f, 4.0f, 5.0f);
long intSum = ints.stream()
.mapToLong(Integer::longValue)
.sum();
long longSum = longs.stream()
.mapToLong(Long::longValue)
.sum();
double doublesSum = doubles.stream()
.mapToDouble(Double::doubleValue)
.sum();
double floatsSum = floats.stream()
.mapToDouble(Float::doubleValue)
.sum();
System.out.println(String.format(
"Integers: %s, Longs: %s, Doubles: %s, Floats: %s",
intSum, longSum, doublesSum, floatsSum));
15, 15, 15.5, 15.5