Skip to Main Content

Java Programming

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Group ArrayList of integers in sequence

807607Jan 31 2007 — edited Feb 1 2007
Hi,

I have an ArrayList of integer values. These values are sorted in ascending order. Some of the values in the List may be in sequence and some may not. So the values in the List can look like this:

661, 662, 670, 683, 684, 708, 709, 710, 711.

I want to be able to "group" the numbers into separate arrays where :
array1 = {661, 662}
array2 = {670}
array3 = {683, 684}
array4 = {708, 709, 710, 711}

Here is a what I have tried so far but I still am nowhere near it I think. Any help is appreciated!
import java.lang.*;
import java.util.*;

public class GroupNumbers
{
	public static void main(String args[])
	{
		List numbers = new ArrayList();
		
		numbers.add(661);
		numbers.add(662);
		numbers.add(670);
		numbers.add(683);
		numbers.add(684);
		numbers.add(708);
		numbers.add(709);
		numbers.add(710);
		numbers.add(711);
		
		int size = numbers.size();
		List[] lstNumbers = new ArrayList[size];
		
		for(int k=0;k<size;k++)
			lstNumbers[k] = new ArrayList();
			
		int count = 1;
		int currentNumber = 0;
		int nextNumber = 0;
					
		for(int i=0;i<size;i++)
		{
			currentNumber = Integer.parseInt(numbers.get(i).toString());
			try{
			nextNumber = Integer.parseInt(numbers.get(i+count).toString());
			}
			catch(Exception e){}
			System.out.println("Current Number : " + currentNumber);
			System.out.println("Add current channel to list");
			System.out.println("Next Number : " + nextNumber);
			System.out.println("Count : " + count);
			lstNumbers.add(nextNumber);

if((nextNumber - currentNumber) == count)
{
System.out.println("Add " + nextNumber + " to list");
lstNumbers[i].add(nextNumber);
count++;
}
else
{
System.out.println("Create new list....break to out for loop");
count = 1;
}
}

for(int b=0;b<size;b++)
System.out.println("List size : " + b + " -> " + lstNumbers.size());
}
}
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Mar 1 2007
Added on Jan 31 2007
37 comments
462 views