AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

[Java] Typisierte Liste sortieren

Ein Thema von Luckie · begonnen am 24. Jan 2012 · letzter Beitrag vom 25. Jan 2012
Antwort Antwort
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
Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#2

AW: [Java] Typisierte Liste sortieren

  Alt 24. Jan 2012, 23:50
Bist du sicher, dass du sort auf der richtigen Liste aufrufst?
Du leitest einmal die AutoListe von ArrayList<Auto> ab, hast dann aber noch eine weitere ArrayList<Auto> als Member.

So ins Blaue hinein (weiß ja nicht, wie du die Liste verwenden willst):

Code:
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());
      Collections.sort(this, newAscAutoComparator());
   }

   protected static Comparator<Auto> newAscAutoComparator() {
      return new Comparator<Auto>() {
         @Override
         public int compare(Auto arg0, Auto arg1) {
            return arg0.toString().compareTo(arg1.toString());
         };
      };
   }
}
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

AW: [Java] Typisierte Liste sortieren

  Alt 25. Jan 2012, 00:20
Ah. OK. Ich darf keine interne Liste deklarieren. Das heißt die Liste ist schon typisiert mit
Code:
public class AutoListe extends ArrayList<Auto>
Dank dir.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Coffeecoder
Coffeecoder

Registriert seit: 27. Apr 2011
242 Beiträge
 
Delphi 6 Enterprise
 
#4

AW: [Java] Typisierte Liste sortieren

  Alt 25. Jan 2012, 09:18
Hallo,
Mir ist aufgefallen, dass du keinen Konstruktor in der Klasse Auto hast. In diesem Fall erbt man den Konstruktor von der Oberklasse.
Code:
...

public Auto() {
  this("Audi","2008","Rot");
}
      
public Auto(String marke, String baujahr, String farbe){
  this.marke = marke;
  this.baujahr = baujahr;
  this.farbe = farbe;
}

...
War das Absicht?
Coffeecoder
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

AW: [Java] Typisierte Liste sortieren

  Alt 25. Jan 2012, 09:46
Ich brauchte keinen Konstruktor. Als ich noch die überflüssige interne Liste hatte, hatte ich einen, um die interne Liste zu erstellen.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:14 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz