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());
}
}