如何判断数值之间是否有冲突

(有单个数字也有区间范围的,区间范围的:起始和结束的长度要一样比如100-600,但1-50就不行,要改为01-50)
要比较数字有没冲突
数字可以是一个的或是范围的,比较5,6-9
那么8就跟上面的冲突了
如果11-14,那么13-19也不行,因为有交叉了。
现在问题是如果有这样的数字 1,3,5,6-9,8,120-150,130-180,怎么判断有冲突,冲突的有哪些?谢谢! :oops:

[code="java"]
package com.chinahrt.zyn.iteye;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class NumTest {
public static class StringNum implements Comparable{
private String s;
private Integer first;
private Integer last;
public StringNum (String s){
this.s = s;
String str[] = s.split("-");
if(str.length>1){
first = Integer.valueOf(str[0]);
last = Integer.valueOf(str[1]);
}else{
first = Integer.valueOf(str[0]);
last = 0;
}

    }

    public int compareTo(Object o) {
        StringNum sn = (StringNum)o;
        if(first>sn.first){
            return 1;
        }else if(first.equals(sn.first)){
            return 0;
        }else{
            return -1;
        }
    }

}
public static void testUnit(List<StringNum> list){
    Collections.sort(list);
    for(int i=0;i<list.size();i++){
        StringNum s = list.get(i);
    //  System.out.println(s.s);
        if(s.last>0){
            for(int j=i+1;j<list.size();j++){
                StringNum s1 = list.get(j);
                if(s.last>=s1.first){
                    System.out.println(s.s+"和"+s1.s+"冲突!");
                }
            }
        }
    }
}
/**
 * @param args
 */
public static void main(String[] args) {
    // TODO Auto-generated method stub
    List<StringNum> list = new ArrayList<StringNum> ();
    list.add(new StringNum("1"));
    list.add(new StringNum("3"));
    list.add(new StringNum("5"));
    list.add(new StringNum("6-9"));
    list.add(new StringNum("8"));
    list.add(new StringNum("120-150"));
    list.add(new StringNum("130-180"));
    list.add(new StringNum("001-010"));
    list.add(new StringNum("0001-0010"));
    testUnit(list);
}

}

[/code]

把所有的数字都看成0长度的区间,然后把所有的区间构成数值排序,区间两端数值的序号连续的一般不会重复,去除相等碰撞的。这就是个一维的碰撞检测。

可不可以这样来处理1.你上面的数有两种情况装换为一个种例如:5->5-5;
2.处理碰撞区域。循环遍历两次找出两两存在碰撞的的区域