@@ -28,10 +28,17 @@ public class IntervalTree<O extends Object> {
28
28
*/
29
29
@ Override
30
30
public int compare (IntervalData <?> arg0 , IntervalData <?> arg1 ) {
31
+ // Compare start first
31
32
if (arg0 .start < arg1 .start )
32
33
return -1 ;
33
34
if (arg1 .start < arg0 .start )
34
35
return 1 ;
36
+ // Then end
37
+ if (arg0 .end < arg1 .end )
38
+ return -1 ;
39
+ if (arg1 .end < arg0 .end )
40
+ return 1 ;
41
+ // if they have the same start and end they must be equal
35
42
return 0 ;
36
43
}
37
44
};
@@ -43,10 +50,17 @@ public int compare(IntervalData<?> arg0, IntervalData<?> arg1) {
43
50
*/
44
51
@ Override
45
52
public int compare (IntervalData <?> arg0 , IntervalData <?> arg1 ) {
53
+ // Compare end first
46
54
if (arg0 .end < arg1 .end )
47
55
return -1 ;
48
56
if (arg1 .end < arg0 .end )
49
57
return 1 ;
58
+ // Then start
59
+ if (arg0 .start < arg1 .start )
60
+ return -1 ;
61
+ if (arg1 .start < arg0 .start )
62
+ return 1 ;
63
+ // if they have the same start and end they must be equal
50
64
return 0 ;
51
65
}
52
66
};
@@ -68,10 +82,12 @@ protected static final <O extends Object> Interval<O> createFromList(List<Interv
68
82
Interval <O > newInterval = new Interval <O >();
69
83
int half = intervals .size () / 2 ;
70
84
IntervalData <O > middle = intervals .get (half );
85
+ System .out .println (middle );
71
86
newInterval .center = ((middle .start + middle .end ) / 2 );
72
87
List <IntervalData <O >> leftIntervals = new ArrayList <IntervalData <O >>();
73
88
List <IntervalData <O >> rightIntervals = new ArrayList <IntervalData <O >>();
74
89
for (IntervalData <O > interval : intervals ) {
90
+ System .out .println (interval );
75
91
if (interval .end < newInterval .center ) {
76
92
leftIntervals .add (interval );
77
93
} else if (interval .start > newInterval .center ) {
0 commit comments