Note that there are some explanatory texts on larger screens.

plurals
  1. POSorting an array using Comparator
    text
    copied!<p>I have the following code. When I try to compile it, it gives me the following error:</p> <pre><code>The method sort(List&lt;T&gt;, Comparator&lt;? super T&gt;) in the type Collections is not applicable for the arguments (Software[], new Comparator(){}) The type new Comparator(){} must implement the inherited abstract method Comparator.compare(Object, Object) </code></pre> <h3>Code</h3> <pre><code>import java.text.DecimalFormat; // For proper currency import java.util.Comparator; import java.util.Collections; public class 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( 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 &lt; 3; i++){ value = Softwarevalue(); } return value; } }//end method value // import java.text.DecimalFormat; // For proper currency import java.util.Arrays; import java.util.Collections; import java.util.Comparator; 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"); // Sort in order of Software Name Collections.sort(aSoftware, new Comparator() { public int compare(Software s1, Software s2) { return s1.getSoftwareTitle().compareTo(s2.getSoftwareTitle()); } }); // Display software title, number of units, cost, item number and total inventory for (int i = 0; i &lt; 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 &lt; 3; i++){ total += aSoftware[i].getCalculateInventory(); } System.out.printf("Total Value of Software Inventory is: \t$%.2f\n", total); //end output total inventory value } } // //end </code></pre> <p>How do I get the software titles (an array) to display in alphabetical order using the Comparator?</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload