Es geht um diese Aufgabe, mit der ich nicht mehr weitergekommen bin:
Implementieren Sie für die Klasse
die Methode:
boolean thisIsLonger(AbList other): das Ergebnis sei genau dann wahr, wenn die Liste länger ist, als die Argumentliste. Eine Methode length auf Listen steht Ihnen dabei nicht zur Verfügung. Beispiel:
ergibt:
.
Die Basisklasse ist wie folgt gegeben;
Meine Denkrichtung ist folgendes;
Hier bin ich verwirrt damit wie man die länge von AbList berechnen kann. Die AbList ist kein primitiver Datentyp wie integer. Ich habe versucht mit der Zeile xs.length(), funktioniert es natürlich nicht. Kann jemand mir eine Hilfsstellung geben (z.B. Links)?
Implementieren Sie für die Klasse
Java:
AbList
boolean thisIsLonger(AbList other): das Ergebnis sei genau dann wahr, wenn die Liste länger ist, als die Argumentliste. Eine Methode length auf Listen steht Ihnen dabei nicht zur Verfügung. Beispiel:
Code:
("a","b","c").thisIsLonger(("a","b","c","d"))
Code:
false
Die Basisklasse ist wie folgt gegeben;
Code:
abstract class AbList{
abstract public AbList empty();
abstract public AbList cons(String x, AbList xs);
abstract public boolean isEmpty();
abstract public String head();
abstract public AbList tail();
}
Meine Denkrichtung ist folgendes;
Code:
class Extension extends AbList{
public AbList cons(String x, AbList xs){
//wie berechnet die läenge von xs effizienter? wie z.B. xs.laenge()?
//wie kann man return-Statement einsetzen?
}
public int laenge(){
if(isEmpty()){
return 1;
}
//kommt eine for-schreife weiter, je nach dem Länge der AbList
}
public static void main(String[] args){
Extension ext = new Extension();
AbList list1 = ext.cons("a", ???).ext.cons("b", ??) //<---- welcher Datentypen (wenn es nicht isEmpty()) ist
}
}