2

Collection.sort を使用すると Bound Mismatch が発生し続けます。この問題の修正方法がわかりません。それを呼び出すメソッドは次のとおりです。

    static LinkedList <Car> CarList = new LinkedList<Car>(); //Loaded LinkedList

public void DisplayAlphabetical() {
     Collections.sort(CarList);
} //End of Method DisplayAlphabetical

LinkedList は、別のクラスの Car のパラメーターを使用して、並べ替えられる車のリストを作成します。

public class Car {
private String Model = "";
private String Colour = "";
private int Year = 0;
private int VIN = 0;
private double Price = 0;
static int TotalCars;

//Car Constructor
public Car (String Model, String Colour, int newYear, int newVIN, double newPrice){
    this.Model = Model;
    this.Colour = Colour;
    this.Year = newYear;
    this.VIN = newVIN;
    this.Price = newPrice;
    TotalCars++;
} //End of Constructor Car

//Get the car's model
public String getModel() {
    return Model;
} //End of Method getModel

//Get the car's colour
public String getColour() {
    return Colour;
} //End of Method getColour

//Get the year of the car
public int getYear() {
    return Year;
} //End of Method getYear

//Get the VIN of the car
public int getVIN() {//static Car C = new Car(Model, Colour, Year, VIN, Price);
    return VIN;
} //End of Method getVIN

//Get the price of the car
public double getPrice() {
    return Price;
} //End of Method getPrice

Collection.sort には相当するものが必要であることは理解していますが、適切に実装する方法を理解できていません。どんな助けでも大歓迎です。

4

3 に答える 3

2

私は通常、 Comparable を実装する代わりに、Collections.sort(List,Comparator) で Comparator使用することを好みます。

public class ComparatorTest {

    public static class Car {
        private String model;
        public Car(String model) {
            this.model = model;
        }
        public String getModel() {
            return model;
        }
    }

    public static void main(String[] args) {
        LinkedList<Car> list = new LinkedList<Car>();
        list.add(new Car("Golf"));
        list.add(new Car("Fiesta"));            
        Collections.sort(list, new Comparator<Car>() {
            public int compare(Car o1, Car o2) {
                String car1Model = o1.getModel();
                String car2Model = o2.getModel();
                // TODO! return a value!
                // Read http://docs.oracle.com/javase/7/docs/api/java/util/Comparator.html#compare(T,%20T) for more information about what to return
            }
        });
    }
}
于 2013-11-13T19:17:41.207 に答える
1
public class Car implements Comparable {
    ...
    public int compareTo(Car c){
        // Implement how you think a car is compared to another
        //Returns a negative integer, zero, or a positive integer as this object is less    
        //than, equal to, or greater than the specified object.
   }
}
于 2013-11-13T18:58:10.650 に答える