Comparable Interface In Java?
public class CD implements Comparable { private String title, artist; private double cost; private int tracks; //--------------------------------------… // Creates a new CD with the specified information. //--------------------------------------… public CD (String name, String singer, double price, int numTracks) { title = name; artist = singer; cost = price; tracks = numTracks; } //--------------------------------------… // Returns a string description of this CD. //--------------------------------------… public String toString() { NumberFormat fmt = NumberFormat.getCurrencyInstance(); String description; description = fmt.format(cost) + "\t" + tracks + "\t"; description += title + "\t" + artist; return description; } public int compareTo(Object o) { CD other = (CD) o; int result = (this.title.compareTo(other.title) if (result == 0) { result = (this.artist.compareTo(other.artist); } return result; }
Public class CDCollection { private CD[] collection; private int count; private double totalCost; //----------------------------------------------------------------- // Constructor: Creates an initially empty collection. //----------------------------------------------------------------- public CDCollection () { collection = new CD[100]; count = 0; totalCost = 0.0; } //----------------------------------------------------------------- // Adds a CD to the collection, increasing the size of the // collection if necessary. //----------------------------------------------------------------- public void addCD (String title, String artist, double cost, int tracks) { if (count == collection.length) increaseSize(); collection[count] = new CD (title, artist, cost, tracks); totalCost += cost; count++; } //----------------------------------------------------------------- // Returns a report describing the CD collection. //----------------------------------------------------------------- public String toString() { NumberFormat fmt = NumberFormat.getCurrencyInstance(); String report = "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n"; report += "My CD Collection\n\n"; report += "Number of CDs: " + count + "\n"; report += "Total cost: " + fmt.format(totalCost) + "\n"; report += "Average cost: " + fmt.format(totalCost/count); report += "\n\nCD List:\n\n"; for (int cd = 0; cd < count; cd++) report += collection[cd].toString() + "\n"; return report; } //----------------------------------------------------------------- // Increases the capacity of the collection by creating a // larger array and copying the existing collection into it. //----------------------------------------------------------------- private void increaseSize () { CD[] temp = new CD[collection.length * 2]; for (int cd = 0; cd < collection.length; cd++) temp[cd] = collection[cd]; collection = temp; } }
The problem is that I am adding a method from CD to another class COLLECTIONS using the compareTo from this method and I can't figure out. Here are the specs:
Add a findCD() method
It has two input parameters: title and artist.
This method returns the CD object that matches the title and artist.
It returns a null if no match is found.
Any help would be appreciated.