edu.pdx.cs410J.core.Cereal Maven / Gradle / Ivy
The newest version!
package edu.pdx.cs410J.core;
import java.util.*;
/**
* This class represents a box of cereal. It has a name and a price.
*/
public class Cereal implements Comparable {
private String name;
private double price;
/**
* Creates a new box of cereal
*/
public Cereal(String name, double price) {
this.name = name;
this.price = price;
}
/**
* Returns the name of this cereal
*/
public String getName() {
return this.name;
}
/**
* Returns the price of this cereal
*/
public double getPrice() {
return this.price;
}
public String toString() {
return this.name + " $" + this.price;
}
/**
* Compares two Cereal
s based on their name
*/
public int compareTo(Cereal c2) {
return this.getName().compareTo(c2.getName());
}
/**
* Two be consistent with the natural ordering, two
* Cereal
s that have the same name, are themselves the
* same.
*/
public boolean equals(Object o) {
if (o instanceof Cereal) {
Cereal other = (Cereal) o;
return this.getName().equals(other.getName());
}
return false;
}
/**
* Two cereals that are equal must have the same hash code.
*/
public int hashCode() {
return this.getName().hashCode();
}
/**
* Demonstrates the natural ordering of Cereals
by
* adding a bunch of cereals to a {@link SortedSet}
*/
public static void main(String[] args) {
SortedSet set = new TreeSet();
set.add(new Cereal("Total", 3.56));
set.add(new Cereal("Raisin Bran", 2.65));
set.add(new Cereal("Sugar Crisps", 2.38));
for (Cereal c : set ) {
System.out.println(c);
}
}
}