@@ -167,16 +167,10 @@ public static final class Interval<O> {
167
167
private long center = Long .MIN_VALUE ;
168
168
private Interval <O > left = null ;
169
169
private Interval <O > right = null ;
170
- /** overlap is sorted by start point **/
171
170
private List <IntervalData <O >> overlap = new ArrayList <IntervalData <O >>();
172
- /** overlapEnd is reverse sorted by end point **/
173
- private List <IntervalData <O >> overlapEnd = new ArrayList <IntervalData <O >>();
174
171
175
172
private void add (IntervalData <O > data ) {
176
173
overlap .add (data );
177
- Collections .sort (overlap ,startComparator );
178
- overlapEnd .add (data );
179
- Collections .sort (overlapEnd ,endComparator );
180
174
}
181
175
182
176
/**
@@ -190,6 +184,7 @@ public IntervalData<O> query(long index) {
190
184
IntervalData <O > results = null ;
191
185
if (index < center ) {
192
186
// overlap is sorted by start point
187
+ Collections .sort (overlap ,startComparator );
193
188
for (IntervalData <O > data : overlap ) {
194
189
if (data .start > index )
195
190
break ;
@@ -201,8 +196,9 @@ else if (results != null && temp != null)
201
196
results .combined (temp );
202
197
}
203
198
} else if (index >= center ) {
204
- // overlapEnd is reverse sorted by end point
205
- for (IntervalData <O > data : overlapEnd ) {
199
+ // overlap is reverse sorted by end point
200
+ Collections .sort (overlap ,endComparator );
201
+ for (IntervalData <O > data : overlap ) {
206
202
if (data .end < index )
207
203
break ;
208
204
0 commit comments