一堆整数 按连续不连续进行分类

package com.rich.bean;

import java.util.ArrayList;
import java.util.List;

public class TestGroup {

	public static void main(String args[]){
		List list = new ArrayList();
		list.add(1);
		list.add(2);
		list.add(6);
		list.add(7);
		list.add(8);
		list.add(10);
		list.add(11);
		list.add(12);
		list.add(14);
		list.add(15);
		
		List<Rd> rdList = new ArrayList<Rd>();
		Rd rd = new Rd();
		boolean flag = true;
		
		for(int i=0; i<list.size(); i++){		
			if(flag){
				rd.setStart(((Integer)list.get(i)).intValue());
			}
			
			Integer now = (Integer)list.get(i);

			if(i != list.size() -1){
				Integer after = (Integer)list.get(i+1);
				
				int cha = after.intValue() - now.intValue();
				
				if(cha == 1){
					flag = false;
					rd.setCount(rd.getCount()+1);
				}else{
					rd.setEnd(((Integer)list.get(i)).intValue());
					rd.setCount(rd.getCount()+1);
					rdList.add(rd);
					flag = true;
					rd = new Rd();
				}
			}else{
				
					rd.setCount(rd.getCount()+1);
					rd.setEnd(now.intValue());
					rdList.add(rd);
				
			}
			
			
			
			
		}
		for(Rd r : rdList){
			System.out.println("Start:"+r.getStart()+"---End:"+r.getEnd()+"--Count:"+r.getCount());
		}
		
	}
	

}

class Rd{
	int start;
	int end;
	int count = 0;
	public int getCount() {
		return count;
	}
	public void setCount(int count) {
		this.count = count;
	}
	public int getStart() {
		return start;
	}
	public void setStart(int start) {
		this.start = start;
	}
	public int getEnd() {
		return end;
	}
	public void setEnd(int end) {
		this.end = end;
	}
	
	
	
	
}

你可能感兴趣的:(一堆整数 按连续不连续进行分类)