Guten Tag!
Ich habe folgendes Problem:
Die Methode "sortieren" soll ein Sortierkriterium der Klasse Comparator <Stellplatz> erwarten und dann ein Array danach sortieren.
In diesem Fall also entweder nach Bezeichnung oder nach der Fläche.
Ich steh nun irgendwie auf dem Schlauch wie ich der Methode den Comparator <Stellplatz> übergebe soll.
MfG
Dies sind die drei Klassen, welche ich schon geschrieben habe.
Ich habe folgendes Problem:
Die Methode "sortieren" soll ein Sortierkriterium der Klasse Comparator <Stellplatz> erwarten und dann ein Array danach sortieren.
In diesem Fall also entweder nach Bezeichnung oder nach der Fläche.
Ich steh nun irgendwie auf dem Schlauch wie ich der Methode den Comparator <Stellplatz> übergebe soll.
MfG
Dies sind die drei Klassen, welche ich schon geschrieben habe.
Java:
import java.util.*;
public class NachFlaeche implements Comparator<Stellplatz>{
public int compare(Stellplatz a, Stellplatz b) {
double diff = a.getFlaeche() - b.getFlaeche(); {
if ( diff < 0 ) return -1;
if ( diff > 0 ) return 1;
return 0;
}
}
}
Java:
import java.util.*;
public class Stellplatz implements Comparable<Stellplatz> {
private String bezeichnung;
private double flaeche;
public Stellplatz(String bezeichnung, double flaeche) {
this.bezeichnung = bezeichnung;
this.flaeche = flaeche;
}
public double getFlaeche() {
return flaeche;
}
public String toString() {
return " " + bezeichnung + "\t"+ "\t" + (int)flaeche + " m²";
}
public int compareTo(Stellplatz a) {
return this.bezeichnung.compareTo(a.bezeichnung);
}
}
Java:
import java.util.*;
public class Lager {
private Stellplatz[] plaetze;
public Lager(Stellplatz[] plaetze) {
this.plaetze = plaetze;
}
public void sortieren (Comparator<Stellplatz> stell) {
}
public String toString() {
return "Platz: " + plaetze;
}
public static void main(String [] args) {
Stellplatz[] lager = {new Stellplatz("A2",5.0), new Stellplatz("B1", 25.0), new Stellplatz("A1", 15.0), new Stellplatz("B2", 10.0)};
Arrays.sort(lager);
System.out.println("Bezeichnung" + "\t" + "Fläche");
for (int i = 0; i < lager.length; i++) {
System.out.println(lager[i]);
}
System.out.println("\n" + "----------------------" + "\n");
Arrays.sort(lager, new NachFlaeche());
System.out.println("Bezeichnung" + "\t" + "Fläche");
for (int j = 0; j < lager.length; j++) {
System.out.println(lager[j]);
}
System.out.println("\n" + "----------------------" + "\n");
}
}