grüß euch!
mein problem bezieht sich darauf, dass ich einzigartige bezeichner für zu erzeugende objekte brauche, aber keine schleife hinbekomme, die mir solche bezeichner erzeugt.
gegeben (und damit unveränderlich) ist eine klasse Knoten, deren code sehr übersichtlich ist:
ich habe außerdem eine zu implementierende methode feldZuListe(int[] eingabe). das int[]-feld kann beliebig groß sein.
mithilfe dieser methode sollen so viele objekte Knoten erzeugt werden, wie das feld 'eingabe' groß ist. dann soll das attribut "schluessel" des ersten objekts Knoten (zb. "knoten0") den wert eingabe[0] annehmen, während "knoten0.rechts" den wert des nächsten Knoten (zb. "knoten1") annimmt. das passiert für jeden Knoten und am ende hat man eine verkettete liste von Knoten. durch die eingabe des ersten Knoten ("knoten0") in folgende methode, sollen in richtiger reihenfolge die 'schluessel' aller Knoten ausgegeben werden:
so weit so gut. ich hänge an der methode feldZuListe. man weiß nicht, wie groß das int[]-feld ist, dass die methode als eingabe erhält. es kann beliebig groß sein, deshalb brauche ich eine schleife, die eingabe.length mal ein Knoten-objekt erzeugt. jetzt brauche ich aber eingabe.length bezeichner, je einen für ein Knoten-objekt. daran scheitere ich bisher, und auch google verrät mir, dass java es nicht erlaubt, eine schleife zu bauen, die eigenständig beliebig viele objekte mit immer anderem bezeichner
erzeugt. ich meine etwas in der art:
'for(int i=0; i<eingabe.length; i++){Knoten knoten+i=new Knoten;}'
(was natürlich nicht geht)
eine eigene methode zu schreiben, wobei a vom typ int ist und statisch für die klasse definiert wird,
'String giveName(){ a++; return "knoten"+Integer.toString(a);}'
funktioniert auch nicht, da der konstruktor von Knoten keine methode anstelle des bezeichners erlaubt (also
'Knoten giveName()=new Knoten;'
geht irgendwie nicht).
ich finde auch sonst nichts nützliches und habe keine idee mehr.
hat jemand zumindest ein stichwort für mich? mir gehen die suchbegriffe aus.
p.s. wenn ich ganz stumpf versuche, einen einzelnen Knoten zu erzeugen
'Knoten x=new Knoten;'
dann unterstreicht eclipse sowohl "new" als auch das zweite "Knoten". zu "new" sagt die software "syntax error on token 'new', delete this token", zu "Knoten" sagt sie "Knoten cannot be resolved into a variable". ich schätze es hängt damit zusammen, dass die klasse Knoten keinen konstruktor hat. aber die klasse ist nun mal so und nicht anders gegeben (hausaufgabe) und die aufgabe muss ja trotzdem irgendwie lösbar sein.
das ganze problem könnte also darin liegen, denn vielleicht ist das der grund, warum auch
'Knoten giveName()=new Knoten;' nicht geht. (eclipse erkennt diese zeile irgendwie als deklarierung von giveName() und sagt deshalb nachvollziehbarerweise "duplicate method giveName()")
mein problem bezieht sich darauf, dass ich einzigartige bezeichner für zu erzeugende objekte brauche, aber keine schleife hinbekomme, die mir solche bezeichner erzeugt.
gegeben (und damit unveränderlich) ist eine klasse Knoten, deren code sehr übersichtlich ist:
Java:
class Knoten{
public int schluessel;
public Knoten rechts;
}
ich habe außerdem eine zu implementierende methode feldZuListe(int[] eingabe). das int[]-feld kann beliebig groß sein.
mithilfe dieser methode sollen so viele objekte Knoten erzeugt werden, wie das feld 'eingabe' groß ist. dann soll das attribut "schluessel" des ersten objekts Knoten (zb. "knoten0") den wert eingabe[0] annehmen, während "knoten0.rechts" den wert des nächsten Knoten (zb. "knoten1") annimmt. das passiert für jeden Knoten und am ende hat man eine verkettete liste von Knoten. durch die eingabe des ersten Knoten ("knoten0") in folgende methode, sollen in richtiger reihenfolge die 'schluessel' aller Knoten ausgegeben werden:
Java:
private static void gibListeAus(Knoten start) {
while (start != null) {
System.out.println(start.schluessel);
start = start.rechts;
}
}
so weit so gut. ich hänge an der methode feldZuListe. man weiß nicht, wie groß das int[]-feld ist, dass die methode als eingabe erhält. es kann beliebig groß sein, deshalb brauche ich eine schleife, die eingabe.length mal ein Knoten-objekt erzeugt. jetzt brauche ich aber eingabe.length bezeichner, je einen für ein Knoten-objekt. daran scheitere ich bisher, und auch google verrät mir, dass java es nicht erlaubt, eine schleife zu bauen, die eigenständig beliebig viele objekte mit immer anderem bezeichner
erzeugt. ich meine etwas in der art:
'for(int i=0; i<eingabe.length; i++){Knoten knoten+i=new Knoten;}'
(was natürlich nicht geht)
eine eigene methode zu schreiben, wobei a vom typ int ist und statisch für die klasse definiert wird,
'String giveName(){ a++; return "knoten"+Integer.toString(a);}'
funktioniert auch nicht, da der konstruktor von Knoten keine methode anstelle des bezeichners erlaubt (also
'Knoten giveName()=new Knoten;'
geht irgendwie nicht).
ich finde auch sonst nichts nützliches und habe keine idee mehr.
hat jemand zumindest ein stichwort für mich? mir gehen die suchbegriffe aus.
p.s. wenn ich ganz stumpf versuche, einen einzelnen Knoten zu erzeugen
'Knoten x=new Knoten;'
dann unterstreicht eclipse sowohl "new" als auch das zweite "Knoten". zu "new" sagt die software "syntax error on token 'new', delete this token", zu "Knoten" sagt sie "Knoten cannot be resolved into a variable". ich schätze es hängt damit zusammen, dass die klasse Knoten keinen konstruktor hat. aber die klasse ist nun mal so und nicht anders gegeben (hausaufgabe) und die aufgabe muss ja trotzdem irgendwie lösbar sein.
das ganze problem könnte also darin liegen, denn vielleicht ist das der grund, warum auch
'Knoten giveName()=new Knoten;' nicht geht. (eclipse erkennt diese zeile irgendwie als deklarierung von giveName() und sagt deshalb nachvollziehbarerweise "duplicate method giveName()")