package 判斷集合資料是否連續;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
public class Test1 {
public static List<Integer> initialization(){
//1.初始化源資料
List<Integer> numList = new ArrayList<Integer>();
numList.add(1);
numList.add(2);
numList.add(3);
numList.add(4);
numList.add(4);
numList.add(5);
numList.add(6);
numList.add(7);
numList.add(8);
numList.add(8);
numList.add(9);
numList.add(9);
numList.add(10);
numList.add(11);
numList.add(12);
numList.add(13);
numList.add(14);
return numList;
}
public static void main(String[] args) {
//1.初始化資料
List<Integer> numList=initialization();
//2.邏輯處理
boolean flag=true;
List<Set<Integer>> reslutList=new ArrayList<>();
Set<Integer> temSet=null;
for (int i = 0; i < numList.size()-1; i++) {
if (i==0) {
temSet=new HashSet();
}
int before=numList.get(i);//目前元素
int last=numList.get(i+1);//下一個元素
System.out.println("before="+before+"\t"+"last="+last);
//判讀目前元素+1後是否=下一個元素
if ((before+1)!=last) {
System.out.println("不連續");
if (i==0) {//當第一個資料就不連續,将第一個資料單獨放到一個集合裡面
temSet.add(before);
}
reslutList.add(temSet);
temSet=new HashSet();
temSet.add(last);
flag=false;
}else {
System.out.println("連續");
temSet.add(before);
temSet.add(last);
}
//當周遊到倒數第二個資料時(目前i的值隻能周遊到倒數第二個數),存在兩個邏輯,如下
if (last==numList.get(numList.size()-1)) {
temSet.add(last);//1.倒數第二個數和最後一個數不連續
reslutList.add(temSet);//2.當倒數第二個數和最後一個數連續,但是和前一個不連續
}
}
//3.輸出結果
System.out.println("源資料是否連續:"+false);
for (Set<Integer> list : reslutList) {
System.out.print("[");
for (int list2 : list) {
System.out.print(list2+"\t");
}
System.out.println("]");
}
}
}