欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

集合合并

程序员文章站 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);
	}
}
相关标签: 工作