0
我正在使用SortedSet存储时间间隔,当我添加一个新时间间隔时,需要检查它是否与集中的现有时间间隔重叠。提高效率添加间隔集Java
我的代码现在是
public boolean add(Interval<K> i) {
Comparable ib = i.getB();
Comparable ia = i.getA();
for(Interval m : intervals) {
Comparable b = m.getB();
Comparable a = m.getA();
if (a.compareTo(ia) == 0 && b.compareTo(ib) == 0) {
return false; // same interval already there so don't add/return false
}
if (b.compareTo(ia) <= 0 && a.compareTo(ia) < 0) {
continue; // exists before current element
}
if (a.compareTo(ib) >= 0 && a.compareTo(ia) > 0) {
continue; // exists after
}
return false; // interval overlaps, so don't add/return false
}
intervals.add(i);
return true;
}
对于上面的代码中,时间间隔是包含所有时间间隔的集合,getB获取间隔的端部和木屐获取间隔的开始部分。
它工作正常,虽然我正在努力提高效率,因为它执行时间太长。
有没有人看到提高效率明智的任何领域?如果不循环集合中的所有间隔,是否可以做到这一点?