一、list不存在array集合元素
/**
* 多组连续数字,连续数字最大组数目
* @param lists
* @return flag
*/
public static void isContinuity(List<Integer> lists){
//记录连续数字存在组数
int index = 0;
//记录连续最多一组长度
int size = 0;
//连续的子数组
List<Integer> list = new LinkedList<>();
//记录各子数组
List<String> relist = new LinkedList<>();
//记录第一个数
list.add(lists.get(0));
for (int i = 0; i < lists.size() - 1; ++i) {
if (lists.get(i) + 1 == lists.get(i+1)) {
list.add(lists.get(i+1));
if (size < list.size()) {
size = list.size();
}
} else {
if (list.size() > 1) {
//存在一组自加一次
index++;
//只记录最大一组长度
if (size < list.size()) {
size = list.size();
}
}
//list转String
if (null == list && list.size() <= 0) {
System.out.println("list内容为空!");
} else {
StringBuilder sb = new StringBuilder();
String resultString = "";
for (int a = 0; a < list.size(); a++) {
if (a < list.size() - 1) {
sb.append(list.get(a));
sb.append(",");
} else {
sb.append(list.get(a));
}
}
resultString = sb.toString();
//记录
relist.add(resultString);
//重新记录连续数字
list.clear();
list.add(lists.get(i+1));
}
}
}
System.out.println("最大组别含有"+size+"个数,共计存在"+index+"组:");
System.out.println(relist);
}
二、主方法
public static void main(String[] args) {
//测试数据
List list = new ArrayList();
for(int i =1;i<=10;i++){
if(i%3 != 0){
list.add(i);
}
}
System.out.println("范例:"+list);
isContinuity(list);
}