Using Generic Comparable interface : Generic Collections « Generics « Java Tutorial






import java.util.Arrays;

class Person implements Comparable<Person> {
  public Person(String firstName, String surname) {
    this.firstName = firstName;
    this.surname = surname;
  }

  public String toString() {
    return firstName + " " + surname;
  }

  public int compareTo(Person person) {
    int result = surname.compareTo(person.surname);
    return result == 0 ? firstName.compareTo(((Person) person).firstName) : result;
  }

  private String firstName;

  private String surname;
}

public class MainClass {
  public static void main(String[] args) {
    Person[] authors = { 
        new Person("D", "S"), 
        new Person("J", "G"),
        new Person("T", "C"), 
        new Person("C", "S"),
        new Person("P", "C"), 
        new Person("B", "B") };

    Arrays.sort(authors); // Sort using Comparable method

    System.out.println("\nOrder after sorting into ascending sequence:");
    for (Person author : authors) {
      System.out.println(author);
    }

    Person[] people = { 
        new Person("C", "S"), 
        new Person("N", "K"),
        new Person("T", "C"), 
        new Person("C", "D") };
    int index = 0;
    System.out.println("\nIn search of authors:");
    
    for (Person person : people) {
      index = Arrays.binarySearch(authors, person);
      if (index >= 0) {
        System.out.println(person + " was found at index position " + index);
      } else {
        System.out.println(person + "was not found. Return value is " + index);
      }
    }
  }
}
Order after sorting into ascending sequence:
  B B
  P C
  T C
  J G
  C S
  D S

  In search of authors:
  C S was found at index position 4
  N Kwas not found. Return value is -5
  T C was found at index position 2
  C Dwas not found. Return value is -4








12.2.Generic Collections
12.2.1.Generics and Collections: ArrayList
12.2.2.Arrays: Storing class objects in Array as data items
12.2.3.Using Generic Comparable interface
12.2.4.A generic first-in, first-out bounded collection of objects
12.2.5.A list declared to hold objects of a type T can also hold objects that extend from T.
12.2.6.Utilities for generic ArrayList
12.2.7.Your own tree with generic user object
12.2.8.Generic to list
12.2.9.Create a typesafe copy of a raw list.
12.2.10.Create a typesafe copy of a raw map.
12.2.11.Create a typesafe filter of an unchecked iterator.
12.2.12.Create a typesafe view over an underlying raw set.
12.2.13.Create a typesafe view over an underlying raw map.
12.2.14.Create a typesafe filter of an unchecked enumeration.