Collections Data Structure Java

import java.text.*;
/* Print a table of Fahrenheit and Celsius temperatures, with decimal
 * points lined up.
 * @author Ian F. Darwin, http://www.darwinsys.com/
 * @version $Id: TempConverter3.java,v 1.4 2004/03/07 02:50:49 ian Exp $
 */
public class TempConverter3 extends TempConverter2 {
  protected FieldPosition fp;
  protected DecimalFormat dff;
  public static void main(String[] args) {
    TempConverter t = new TempConverter3();
    t.start();
    t.data();
    t.end();
  }
  // Constructor
  public TempConverter3() {
    super();
    dff = new DecimalFormat("#0.0");
    fp = new FieldPosition(NumberFormat.INTEGER_FIELD);
  }
  protected void print(float f, float c) {
    String fs = dff.format(f, new StringBuffer(), fp).toString();
    fs = prependSpaces(4 - fp.getEndIndex(), fs);
    String cs = df.format(c, new StringBuffer(), fp).toString();
    cs = prependSpaces(4 - fp.getEndIndex(), cs);
    System.out.println(fs + "  " + cs);
  }
  protected String prependSpaces(int n, String s) {
    String[] res = {
      "", " ", "  ", "   ", "    ", "     "
    };
    if (n      return res[n] + s;
    throw new IllegalStateException("Rebuild with bigger \"res\" array.");
  }
}
class TempConverter2 extends TempConverter {
  protected DecimalFormat df;
  public static void main(String[] args) {
    TempConverter t = new TempConverter2();
    t.start();
    t.data();
    t.end();
  }
  // Constructor
  public TempConverter2() {
    df = new DecimalFormat("#0.00");
  }
  protected void print(float f, float c) {
    System.out.println(df.format(f) + " " + df.format(c));
  }
  protected void start() {
    System.out.println("Fahr    Centigrade.");
  }
  protected void end() {
    System.out.println("-------------------");
  }
}
class TempConverter {
  public static void main(String[] args) {
    TempConverter t = new TempConverter();
    t.start();
    t.data();
    t.end();
  }
  protected void start() {
  }
  protected void data() {
    for (int i=-40; i<=120; i+=10) {
      float c = (i-32)*(5f/9);
      print(i, c);
    }
  }
  protected void print(float f, float c) {
    System.out.println(f + " " + c);
  }
  protected void end() {
  }
}