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


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




}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值