Sortieren einer Liste von Objekten in absteigender Reihenfolge

Ich möchte sozusagen ein list-Objekt, in absteigender Reihenfolge, und mit Blick auf classcastexception-Fehler.

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Iterator;
import java.util.List;

     class Student implements Comparator<Student>{
     private int id;
         private String name;

        public Student(int id, String name){
    this.id = id;
    this.name = name;
}

public int getId(){
    return id;
}
public String getName(){
    return name;
}

}

public class CollectionSearchDemo {


public static void main(String[] args) {

    List<Student> list = new ArrayList<Student>();
    list.add(new Student(3, "ouier"));
    list.add(new Student(2, "fdgds"));
    list.add(new Student(7, "kiluf"));
    list.add(new Student(1, "6trfd"));
    list.add(new Student(8, "hjgas"));
    list.add(new Student(5, "ewwew"));

    Collections.sort(list, new Comparator<Student>() {

        @Override
        public int compare(Student arg0, Student arg1) {

            return arg0.getId() - arg1.getId();
        }
    });

    Iterator iterator = list.iterator();
    while(iterator.hasNext()){
        Student student = (Student) iterator.next();
        System.out.print(student.getId()+":"+student.getName()+" ");
    }

    System.out.println("\nSorting in reverse order:");

// Collections.reverse(list);
    Comparator<Student> collections = Collections.reverseOrder();
    Collections.sort(list, collections);     //here getting classCastException.

    Iterator iterator1 = list.iterator();
    while(iterator1.hasNext()){
        Student student = (Student) iterator1.next();
        System.out.print(student.getId()+":"+student.getName()+" ");
    }
}

}

Wissen wollen paar thigs.
1)was ist der Unterschied bet ' N
Sammlung.reverse(Liste)
und
Comparator collections = Sammlungen.reverseOrder();
Sammlungen.sort(Liste, Sammlungen);
2)warum bin ich vor classcastexception-Fehler.

  • Sie bekommen eine ClassCastException weil Student umsetzen sollte Comparable<Student>, nicht Comparator<Student>.
  • ja.es funktioniert.Können Sie bitte lassen Sie mich wissen, mit etwas mehr Beschreibung?Es wird mir helfen zu verstehen, dieses Konzept besser
  • Ein Comparator vergleicht Dinge. Ein Comparable werden kann, im Vergleich zu anderen Dingen.
  • Hallo,ich möchte binarysearch-Methode auf diese Liste.Ich bin vor eine Ausnahme.stackoverflow.com/questions/14896120/... .Bitte helfen Sie mir.Ich bitte Sie
InformationsquelleAutor nakul | 2013-02-14
Schreibe einen Kommentar