集合合并
程序员文章站
2024-02-02 23:40:28
...
用于时间表的合并
时间段的合并工作.
时间段的合并工作.
public class StarEnds { LinkedList<StarEnd> qeuqeu = new LinkedList<StarEnd>(); public StarEnds add(StarEnd other) { Iterator<StarEnd> it = qeuqeu.iterator(); while(it.hasNext()){ StarEnd temp = it.next(); if(StarEnd.isMix(temp, other)){ other.inputOther(temp); it.remove(); } } qeuqeu.add(other); return this; } public Iterator<StarEnd> iterator(){ return qeuqeu.iterator(); } public static void main(String[] args) { StarEnds ses = new StarEnds(); int[] arr = {1,2,4,5}; for(int i : arr){ StarEnd temp = new StarEnd(); temp.star=i; temp.end =i+1; ses.add(temp); } System.out.println(ses.qeuqeu); } } class StarEnd{ int star=0; int end=0; @Override public String toString() { return "{"+star+":"+end+"}"; } public void inputOther(StarEnd other){ List<Integer> l = Arrays.asList(star,end,other.star,other.end); star = Collections.min(l); end = Collections.max(l); other.star = 0; other.end = 0; } public static boolean isMix(StarEnd one, StarEnd other) { if(one==null||other==null){ return false; } return one.inStarEnd(other.star)||one.inStarEnd(other.end) ; } public boolean inStarEnd(int in){ return (in >= star && in<= end); } }