public static void main(String[] args) {
Vector v = new Vector();
v.add( new Person( "a", "z", 3 ) );
v.add( new Person( "b", "y", 5 ) );
v.add( new Person( "c", "x", 23 ) );
v.add( new Person( "d", "w", 17 ) );
v.add( new Person( "e", "v", 45 ) );
v.add( new Person( "f", "u", 99 ) );
v.add( new Person( "g", "t", 40 ) );
v.add( new Person( "h", "s", 77 ) );
v.add( new Person( "i", "r", 32 ) );
v.add( new Person( "j", "q", 12 ) );
v.add( new Person( "k", "p", 43 ) );
v.add( new Person( "l", "o", 22 ) );
v.add( new Person( "m", "n", 35 ) );
Comparator byAge = new Comparator() {
public int compare(Object o1, Object o2) {
Person p1 = (Person) o1;
Person p2 = (Person) o2;
return p1.age - p2.age;
}
};
Collections.sort(v, byAge);
int min = Collections.binarySearch(v, new Person("","",40), byAge);
int max = Collections.binarySearch(v, new Person("","",80), byAge);
System.out.println("min: "+min+", max: "+max);
min = (min < 0) ? -(min+1) : min;
max = (max < 0) ? -(max+1) : max;
System.out.println("min: "+min+", max: "+max);
Iterator it = v.subList(min, max).iterator();
while(it.hasNext())
System.out.println(it.next().toString());
}