class PointComparer { public int compare(Object o1, Object o2) { Point p1 = (Point) o1; Point p2 = (Point) o2; double s = p1.splitting_y; if((p1.x == p2.x) && (p1.y == p2.y)){ return 0; } if(p1.y >= s && p2.y >= s){ return (p1.x < p2.x) ? 1 : -1; } if(p1.y < s && p2.y < s){ return (p2.x < p1.x) ? 1 : -1; } return (p1.y < s) ? -1 : 1; } }