# Using an Accumulator

When using an accumulating variable there are three stages:

Initialise
We declare our accumulator and set it to an initial values.
Update
Inside the loop we update the accumulator - we take into account the current data item.
Output/use
After the loop our accumulator contains the required value. We use it or output it.

## Using an accumulator to add

Print the total of all of the numbers

• We initialise to 0.
• We add to the accumulator.
• The value printed is the sum 0+2+7+1+1.

[Font] [Default] [Show] [Resize] [History] [Profile]

## Using an accumulator to count

Print the number of items in the list.

• We initialise to 0.
• We increment the accumulator.
• The value printed is the count: 0+1+1+1+1.

[Font] [Default] [Show] [Resize] [History] [Profile]

## Using an accumulator to count on a condition

Count the number of 1s in the list

• We initialise to 0.
• We increment the accumulator only if the current value equals 1.

[Font] [Default] [Show] [Resize] [History] [Profile]

## Using an accumulator to multiply

Print the product of the numbers.

• We initialise to 1. (If you initialise to 0 then the result will always be 0.)
• We multiply the accumulator.
• The value printed is the product: 1*2*7*1*1

[Font] [Default] [Show] [Resize] [History] [Profile]

## Using an accumulator to find the maximum

Print the largest number in the list.

• We initialise to 0.
• We take the max.
• The value printed is the largest:

At each stage the accumulator stays the same or gets bigger (set to the current value).

```max(max(max(max(0,2),7),1),1)
```

[Font] [Default] [Show] [Resize] [History] [Profile]

## Using an accumulator to concatenate

Concatenate all items in the list

Notice that we are using a list of strings this time.

• We initialise to the empty string "".
• We concatenate the next value (stick at the end).

WARNING - Using an accumulator like this can use a great deal of memory. You will find using a StringBuilder is more efficient.

```StringBuilder acc = new StringBuilder();
for (String s : new String[]{"one","two"})
{
acc.append(s);
}
System.out.println(acc);
```

[Font] [Default] [Show] [Resize] [History] [Profile]

## Using two accumulators to find the mean

Print the mean of all items in the list.

• We initialise both `sum` and `count` to 0.
• We add to the sum and increment the count.
• We divide the sum by the count to get the average.

[Font] [Default] [Show] [Resize] [History] [Profile]