Testat Sammlung
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

48 lines
2.0 KiB

package testat_2;
import base.GasStation;
import java.util.Collection;
import java.util.function.Predicate;
public abstract class ALowPriceFinder {
protected int maxSize;
public ALowPriceFinder(int maxSize) {this.maxSize = maxSize;}
// Anzahl an gespeicherten Tankstellen
public abstract int size();
// Liefert die GasStation auf Rang rank (Rang 1 = bester Platz)
public abstract GasStation get(int rank);
// Liefert den Rang von GasStation.
// Ist GasStation nicht enthalten, wird 0 zurückgegeben
// Hinweis: Platz 1 bedeutet Rang 1
public abstract int contains(GasStation station);
// Fügt die GasStation station mit Durchschnittspreis averagePrice hinzu, falls GasStation !=
// null und averagePrice > 0.
// Ist sie schon enthalten, wird der Preis auf averagePrice gesetzt
// Sind maxSize GasStations enthalten, wird die neue GasStation nur aufgenommen, wenn sie
// nicht der letzte in der Liste ist (wenn sie nicht den größten averagePrice hat)
// In diesem Fall wird die letzte GasStation gelöscht (sodass nicht mehr als maxGasStation
// in der Liste sind) und der neue GasStation aufgenommen
// Rückgabe: Rang in der HighaveragePrice-Liste; 0, falls der GasStation nicht hinzugefügt wurde
// Hinweis: Zur Vereinfachung sind alle averagePrice-Werte ungleich
// Beachten Sie: Ein GasStation kann nur einmal enthalten sein
public abstract int add(GasStation GasStation, int averagePrice);
// Liefert eine Collection von Tankstellen (GasStation), deren averagePrice <= threshold ist
// Rückgabe: Collection, ggf. leer (nicht null)
public abstract Collection<GasStation> getStations(int threshold);
// Löscht den GasStation GasStation aus der Liste.
// Rückgabe = Rang der GasStation, (0, falls GasStation nicht enthalten)
public abstract int remove(GasStation station);
// Anzahl an gespeicherter Tankstellen, die das Predicate predicate erfüllen
public abstract int size(Predicate<GasStation> predicate);
}