Hallo,
ich hab gerade in der "Insel", dass Kapitel 11 (Datenstrukturen & Algorithmen) gelesen und muß sagen, dass ich vom Verständnis her, dort noch nicht auf dem Maximum bin. Ich wollte versuchen die erste Übungsaufgabe zu lösen, und dann mit "Learing by Doing" meine Kenntnisse zu verbessern.
Ich will die Aufgabe mal flott posten, und meinen (kleinen) Lösungsansatz:
Ich hätte kein Problem dies mit einem "normalen" Array zu realisieren und über eine for-Schleife zu gehen, doch mit der Möglichkeit der Iteratoren bin ich noch nicht so vertraut .
Soviel ich weiß, muß ich erstmal die drei abstrakten Funktionen hasNext(), next() und remove() aus dem Iterator Interface überschreiben (Bitte korrigiert mich, wenn ich in meinen Annahmen falsch liege).
Dies hab ich so versucht:
Anschließend, hab ich dann die Testmethode geschrieben:
Das Testprogramm ist noch nicht fertig, aber ich hab das Problem, es mit meiner Klasse zu verknüpfen.
Ich hoffe ihr könnt mir mit einer leicht verständlichen Antwort weiterhelfen.
Vielen Dank im Vorraus
ich hab gerade in der "Insel", dass Kapitel 11 (Datenstrukturen & Algorithmen) gelesen und muß sagen, dass ich vom Verständnis her, dort noch nicht auf dem Maximum bin. Ich wollte versuchen die erste Übungsaufgabe zu lösen, und dann mit "Learing by Doing" meine Kenntnisse zu verbessern.
Ich will die Aufgabe mal flott posten, und meinen (kleinen) Lösungsansatz:
Implementiert man das Interface java.util.Enumeration, so lassen sich damit die Elemente einer Klasse der Reihe nach aufzählen. Implementiere eine Klasse Quadratic, die Quadratzahlen bis kleiner 1000 liefert. Der Zugriff dabei soll mittels nextElement() erfolgen. hasMoreElements() darf nur so lange true sein, bis die Werte tatsächlich kleiner 1000 sind. Wie wird das Ende angezeigt, falls wir doch noch einen Wert herausholen wollen, dies aber überhaupt nicht erlaubt ist?
Ich hätte kein Problem dies mit einem "normalen" Array zu realisieren und über eine for-Schleife zu gehen, doch mit der Möglichkeit der Iteratoren bin ich noch nicht so vertraut .
Soviel ich weiß, muß ich erstmal die drei abstrakten Funktionen hasNext(), next() und remove() aus dem Iterator Interface überschreiben (Bitte korrigiert mich, wenn ich in meinen Annahmen falsch liege).
Dies hab ich so versucht:
Code:
import java.util.*;
public class quad1000 implements Iterator
{
private Object array [];
private int pos = 0;
public quad1000 () // Konstruktor , hier ist das Problem
{
// Was kann ich hier machen :?:
}
public boolean hasNext()
{
return pos < array.length;
}
public Object next() throws NoSuchElementException
{
if( hasNext() )
return array[pos++];
else
throw new NoSuchElementException();
}
public void remove()
{
throw new UnsupportedOperationException();
}
}
Anschließend, hab ich dann die Testmethode geschrieben:
Code:
import java.util.*;
public class Quadtest
{
static public void main (String args[])
{
int zahlen [] = new int [100];
int temp;
for(int a = 0 ; a <1000 ; a++)
{
temp = (a * a);
if (temp > 1000)
break;
else
zahlen[a] = temp;
}
Iterator i = new quad1000 (); // Das nächste Problem, wie schaff ich es hier zum Konstruktor :?:
}
}
Das Testprogramm ist noch nicht fertig, aber ich hab das Problem, es mit meiner Klasse zu verknüpfen.
Ich hoffe ihr könnt mir mit einer leicht verständlichen Antwort weiterhelfen.
Vielen Dank im Vorraus