Since you are trying to use an array using objects below:
Arrays.sort(aSoftware);
and your software class should implement tools. Compare and override the compareTo method:
@Override public int compareTo(Software o) { return this.getSoftwareTitle().compareTo(o.getSoftwareTitle()); }
I made a fix for your class as shown below:
public class Software implements Comparable<Software>{ // Declare variables String SoftwareTitle; // SoftwareTitle int SoftwareStock; // Software totals double SoftwarePrice; // Software Price int SoftwareNum; // Software Product ID double CalculateInventory; // To add inventory double SoftwareValue; // Software Total value double value; // Complete inventory total Software(){ } Software(String softtitle, int softstock, double softprice, int softitemnum) { // Create object constructor SoftwareTitle = softtitle; SoftwareStock = softstock; SoftwarePrice = softprice; SoftwareNum = softitemnum; } // Set Software Title public void setSoftwareTitle(String softtitle) { SoftwareTitle = softtitle; } // Return Software Title public String getSoftwareTitle() { return SoftwareTitle; } // Set software inventory public void setSoftwareStock(int softstock) { SoftwareStock = softstock; } // Return software inventory public int getSoftwareStock() { return SoftwareStock; } // Set software price public void setSoftwarePrice(double softprice) { SoftwarePrice = softprice; } // Return software price public double getSoftwarePrice() { return SoftwarePrice; } // Set item number public void setSoftwareNum(int softitemnum) { SoftwareNum = softitemnum; } // // return software item number public int getSoftwareNum() { return SoftwareNum; } // // calculate inventory value public double Softwarevalue() { return SoftwarePrice * SoftwareStock; } public void setCalculateInventory(double value) { this.CalculateInventory = value; } public double getCalculateInventory() { double value = 0; for (int i = 0; i < 3; i++) { value = Softwarevalue(); } return value; } @Override public int compareTo(Software o) { return this.getSoftwareTitle().compareTo(o.getSoftwareTitle()); } }// end method value
Your inventory class:
public class Inventory { public static void main(String args[]) { // Start array of software titles Software[] aSoftware = new Software[4]; aSoftware[0] = new Software("Command and Conquer ", 6, 29.99, 10122); aSoftware[1] = new Software("Alice in Wonderland", 1, 10.99, 10233); aSoftware[2] = new Software("Doom", 1, 10.99, 10344); aSoftware[3] = new Software("Walking Dead", 6, 9.99, 10455); // Set currency format DecimalFormat money = new DecimalFormat("$0.00"); Arrays.sort(aSoftware); // Display software title, number of units, cost, item number and total // inventory for (int i = 0; i < aSoftware.length; i++) { System.out.println("Software Title is " + aSoftware[i].getSoftwareTitle()); System.out.println("The number of units in stock is " + aSoftware[i].getSoftwareStock()); System.out.println("The price of the Software Title is " + (money.format(aSoftware[i].getSoftwarePrice()))); System.out.println("The item number is " + aSoftware[i].getSoftwareNum()); System.out.println("The value of the Software Inventory is " + (money.format(aSoftware[i].Softwarevalue()))); System.out.println(); } // output total inventory value double total = 0.0; for (int i = 0; i < 3; i++) { total += aSoftware[i].getCalculateInventory(); } System.out.printf("Total Value of Software Inventory is: \t$%.2f\n", total); // end output total inventory value } }
Below is the final output in sorted order:
Software Title is Alice in Wonderland The number of units in stock is 1 The price of the Software Title is $10.99 The item number is 10233 The value of the Software Inventory is $10.99 Software Title is Command and Conquer The number of units in stock is 6 The price of the Software Title is $29.99 The item number is 10122 The value of the Software Inventory is $179.94 Software Title is Doom The number of units in stock is 1 The price of the Software Title is $10.99 The item number is 10344 The value of the Software Inventory is $10.99 Software Title is Walking Dead The number of units in stock is 6 The price of the Software Title is $9.99 The item number is 10455 The value of the Software Inventory is $59.94 Total Value of Software Inventory is: $201.92
source share