Einzelnen Beitrag anzeigen

Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#1

[Java] Typisierte Liste sortieren

  Alt 24. Jan 2012, 22:56
Ich habe eine Klasse Auto:
Code:
package de.Auto;

public class Auto implements Comparable<Auto> {

   private String marke;
   private String baujahr;
   private String farbe;

   public String getMarke() {
      return marke;
   }

   public void setMarke(String marke) {
      this.marke = marke;
   }

   public String getBaujahr() {
      return baujahr;
   }

   public void setBaujahr(String baujahr) {
      this.baujahr = baujahr;
   }

   public String getFarbe() {
      return farbe;
   }

   public void setFarbe(String farbe) {
      this.farbe = farbe;
   }

   public String toString() {
      return this.marke + ", " + this.farbe + ", " + this.baujahr;
   }

   @Override
   public int compareTo(Auto auto) {
      if (auto.toString() == null && this.toString() == null) {
         return 0;
      }
      if (this.toString() == null) {
         return 1;
      }
      if (auto.toString() == null) {
         return -1;
      }
      return 0;
   }
}
Und eine Klasse AutoListe:
Code:
package de.Auto;

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

public class AutoListe extends ArrayList<Auto> {

   private static final long serialVersionUID = 1L;
   private List<Auto> autoListe;

   public AutoListe() {
      autoListe = new ArrayList<Auto>();
   }

   public void sortByToString() {
      Collections.sort(autoListe, newAscAutoComparator());
   }

   protected static Comparator<Auto> newAscAutoComparator() {
      return new Comparator<Auto>() {
         @Override
         public int compare(Auto arg0, Auto arg1) {
            return arg0.toString().compareTo(arg1.toString());
         };
      };
   }
}
Allerdings funktioniert das Sortieren nicht. Er springt gar nicht erst in die Methode public int compare() rein, wenn ich die Methode sortByToString() aufrufe. Was mache ich da noch falsch?
Michael
Ein Teil meines Codes würde euch verunsichern.

Geändert von Luckie (24. Jan 2012 um 23:31 Uhr)
  Mit Zitat antworten Zitat