This week's book giveaway is in the Servlets forum. We're giving away four copies of Murach's Java Servlets and JSP and have Joel Murach on-line! See this thread for details.

I have a sorted ArrayList of values. I would like to get the distribution of the values. For example:

- Say I have 500 values, ranging from 1-100.
- I want to break them up into groups, say 10 groups: values 1-10, 11-20, 21-30, etc...
- I want the counts of each of the 500 values that fall into each category. For example, 5 of the 500 are valued at 1-10, 20 between 11-20, etc...
- However, I do not know the ranges of values in my ArrayList, it could be ranging from 1-30 or 1-200, but I want to break it up into, for example, 10 groups.

As your ArrayList is sorted the range is from the value of the first entry to the value of the last entry.

You can use some simple maths to work out what values should go into each of your ten groups.

To count the number of values in the first group you iterate thru the ArrayList until you reach a value that is outside the range.
To count the number of values in the second group you iterate thru the ArrayList starting at the previous end point until you reach a value that is outside the range.
Repeat for each of the groups.