Tri d'un tableau à l'aide du Comparateur

J'ai le code suivant. Lorsque j'essaie de compiler, il me donne l'erreur suivante:

The method sort(List<T>, Comparator<? super T>) 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

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 < 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 < 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
}
}
//
//end 

Comment puis-je obtenir les titres de logiciels (un tableau) à afficher dans l'ordre alphabétique en utilisant le Comparateur?

Quelle est l'erreur que vous obtenez?
La méthode sort(List<T>, Comparateur de<? super T>) dans le type de Collections n'est pas applicable pour les arguments (Logiciel[], nouveau Comparateur(){}) Le type nouveau Comparateur(){} doit mettre en œuvre les hérité résumé de la méthode de Comparaison.compare(Object, Object)
En regardant le code, il semble que l'erreur (la compilation) est à la ligne invoquant Collections.sort(). Vous êtes de passage d'un tableau à la méthode sort, il s'attend à un List. Convertir votre tableau dans une liste.

OriginalL'auteur user1795189 | 2012-11-02