it-swarm.com.de

Summiere alle Elemente Java arraylist

Wenn ich: ArrayList<Double> m = new ArrayList<Double>(); mit den doppelten Werten darin hätte, wie soll ich vorgehen, um alle ArrayList-Elemente zu addieren?

public double incassoMargherita()
{
 double sum = 0;
 for(int i = 0; i < m.size(); i++)
 {          
 }
 return sum;
}

wie?

20
mrmarra98x

Zwei Wege:

Verwenden Sie Indizes:

double sum = 0;
for(int i = 0; i < m.size(); i++)
    sum += m.get(i);
return sum;

Verwenden Sie den "für jeden" Stil:

double sum = 0;
for(Double d : m)
    sum += d;
return sum;
44
Barranka

Verwenden von Java 8 Streams :

double sum = m.stream()
    .mapToDouble(a -> a)
    .sum();

System.out.println(sum); 
6
Lokeshkumar R

Ich habe es nicht getestet, aber es sollte funktionieren.

public double incassoMargherita()
{
    double sum = 0;
    for(int i = 0; i < m.size(); i++)
    {
        sum = sum + m.get(i);
    }
    return sum;
}
6
j.jerrod.taylor

Nicht sehr schwer, benutze einfach m.get(i), um den Wert aus der Liste zu erhalten.

public double incassoMargherita()
{
    double sum = 0;
    for(int i = 0; i < m.size(); i++)
    {
        sum += m.get(i);
    }
    return sum;
}
4
TheEwook

Java 8+ Version für Integer, Long, Double und 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

2