Commit 9ce01376 authored by Trisha Gee's avatar Trisha Gee
Browse files

[Ch10b] Cleaning up and reordering mountains exercise

parent 8b399169
Loading
Loading
Loading
Loading
+29 −24
Changes for src/main/java/ch10b/SortMountains.java: 29 added lines, 24 removed lines.
Original line number Diff line number Diff line
package ch10b;

import java.util.*;

public class SortMountains {
  LinkedList<Mountain> mtn = new LinkedList<Mountain>();

  public static void main(String[] args) {
    new SortMountains().go();
  }

  public void go() {
    List<Mountain> mountains = new LinkedList<>();
    mountains.add(new Mountain("Longs", 14255));
    mountains.add(new Mountain("Elbert", 14433));
    mountains.add(new Mountain("Maroon", 14156));
    mountains.add(new Mountain("Castle", 14265));
    System.out.println("as entered:\n" + mountains);
    NameCompare nc = new NameCompare();
    mountains.sort(nc);
    System.out.println("by name:\n" + mountains);
    HeightCompare hc = new HeightCompare();
    mountains.sort(hc);
    System.out.println("by height:\n" + mountains);
  }
}

class NameCompare implements Comparator<Mountain> {
  public int compare(Mountain one, Mountain two) {
    return one.name.compareTo(two.name);
  }
}

class HeightCompare implements Comparator<Mountain> {
  public int compare(Mountain one, Mountain two) {
    return (two.height - one.height);
  }
}
  public static void main(String [] args) {
    new SortMountains().go();
  }
  public void go() {
    mtn.add(new Mountain("Longs", 14255));
    mtn.add(new Mountain("Elbert", 14433));
    mtn.add(new Mountain("Maroon", 14156));
    mtn.add(new Mountain("Castle", 14265));
    System.out.println("as entered:\n" + mtn);
    NameCompare nc = new NameCompare();
    Collections.sort(mtn, nc);
    System.out.println("by name:\n" + mtn); 
    HeightCompare hc = new HeightCompare();
    Collections.sort(mtn, hc);
    System.out.println("by height:\n" + mtn); 
  }
}

class Mountain {
  String name;
  int height;
  final String name;
  final int height;

  Mountain(String n, int h) {
    name = n;
    height = h;
  Mountain(String name, int height) {
    this.name = name;
    this.height = height;
  }

  public String toString() {
    return name + " " + height;
  }

}
 No newline at end of file