/************************************************** * Program: Pipe.java * Date: April 2015 * Purpose: Example of implementing Comparable * Original source found at * http://ocw.mit.edu/courses/civil-and-environmental-engineering/1-00-introduction-to-computers-and-engineering-problem-solving-spring-2012/lecture-notes/MIT1_00S12_Lec_34.pdf ****************************************************/ public class Pipe implements Comparable { private double diameter; private int numberOfPipes; public static final double TOLERANCE = 10E-15; public Pipe(double diameter, int numberOfPipes) { this.diameter = diameter; this.numberOfPipes = numberOfPipes; } public double getDiameter() { return diameter; } public int getNumberOfPipes() { return numberOfPipes; } @Override public int compareTo(Pipe other) { // Defines order if (Math.abs(diameter - other.diameter) < TOLERANCE) return 0; if (diameter < other.diameter) return -1; return 1; } @Override public String toString() { return("Diameter: " + diameter + " number: " + numberOfPipes); } }