我正在尝试使用TreeSet实现不连续的间隔集
这是我的想法,这些是伪代码
TreeSet<Interval> intervals = new TreeSet<>((i1, i2) -> {
if (i1.start > i2.end) return 1;
else if (i1.end < i2.start) return -1;
else return 0;
});
while (intervals.contains(interval)) {
Interval other = intervals.get(interval);
intervals.remove(interval)
merge(interval, other);
}
intervals.add(interval);
我认为这将一直有效,直到我发现TreeSet中没有get方法。我们是否可以用类似的想法来管理间隔,以便可以在O(logn)时间内将间隔添加到排序的间隔中,而不用扫描整个集合。