(有单个数字也有区间范围的,区间范围的:起始和结束的长度要一样比如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:
如何判断数值之间是否有冲突
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
3条回答 默认 最新
- zyn010101 2013-08-31 10:39关注
[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]
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 C++ 头文件/宏冲突问题解决
- ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
- ¥50 安卓adb backup备份子用户应用数据失败
- ¥20 有人能用聚类分析帮我分析一下文本内容嘛
- ¥15 请问Lammps做复合材料拉伸模拟,应力应变曲线问题
- ¥30 python代码,帮调试
- ¥15 #MATLAB仿真#车辆换道路径规划
- ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
- ¥15 数据可视化Python
- ¥15 要给毕业设计添加扫码登录的功能!!有偿