Erzeugen beliebig vieler Objekte, aber wie wechselnde Bezeichner?

mataze

Mitglied
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:
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()")
 

kaoZ

Top Contributor
Nur mal so nebenbei, selbst wenn du in Knoten keinen Konstruktor deklarierst

Java:
public class Knoten{

..

}

erhält diese Klasse eigentlich immer den Standard Konstruktor

Java:
public class Knoten{

public Knoten(){} // Leerer Standard Konstruktor 

}

[TIPP]
Falsche Syntax !
Java:
'Knoten x=new Knoten;'  // das kann nicht funktionieren
Richtige Syntax :

Java:
Knoten x = new Knoten(); // ruft den Standard Konstruktor der Klasse Knoten auf
[/TIPP]

[EDIT]
Warum hält die Klasse Knoten , eine Referenz auf einen Knoten ?
Java:
Knoten rechts; // bekommt vom Compiler Standardmäßig den Wert null zugewiesen.
[/EDIT]

Wenn du beliebig viele Knoten erzeugen möchtest mach dies mit einer For Schleife,
die Einzelnen Elemente werden dann über den index Referenziert

z.B könntest du so ein Array, oder eine List mit beliebig vielen Knoten befüllen.

Bsp. Erstellung von 10 Knoten :
Java:
for(int i = 0; i < 10; i++){
  new Knoten();
}
 
Zuletzt bearbeitet:

mataze

Mitglied
danke euch beiden für die antwort!

@kaoZ der tipp mit dem standardkonstruktor war hilfreich, danke! wenn du schon fragst: "Knoten rechts;" braucht die klasse deshalb, weil eine liste von knoten entstehen soll. stell dir vor, du hast eine schnur mit einigen knoten. dann ist der erste knoten dein startknoten und der nächste knoten ist als attribut "rechts" des startknotens gespeichert und so weiter. also wenn ich alle knoten bzw. deren schlüssel ausgeben will, brauche ich nur den startknoten als eingabe und eine methode, die in einer schleife start.schluessel ausgibt (solange start != null) und danach start=start.rechts; macht. so ist die aufgabe gedacht. deshalb dachte ich auch, ich brauche so viele knoten wie das eingabe-array groß ist, aber widererwarten hat mir auch mein prof geantwortet und sogar ohne umschweife eine lösung angegeben (hatte maximal mit einem hinweis gerechnet aber gut), und die lösung löst mein problem mit den variablenbezeichnern dadurch, dass ein Knoten "knoten" erstellt wird, der einfach bei jedem durchlauf der schleife überschrieben wird. ich wusste nicht dass das geht, ohne die "darunterliegende" information zu verlieren. aber die tests verlaufen alle positiv. falls es jmd interessiert hier noch der code:

Java:
public class Aufgabe3 {
	private static Knoten feldZuListe(int[] eingabe) {
		Knoten knoten=new Knoten();
		knoten.schluessel=eingabe[0];
		if(eingabe.length>1){
			knoten.rechts=new Knoten();
		}
		Knoten ausgabe=knoten;
		for(int i=1; i<eingabe.length-1; i++){
			knoten=knoten.rechts;
			knoten.schluessel=eingabe[i];
			knoten.rechts=new Knoten();
		}
		knoten=knoten.rechts;
		knoten.schluessel=eingabe[eingabe.length-1];
		
		return ausgabe;
	}

	.....

}

also vielen lieben dank noch mal und thema für mich beendet.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Beliebig viele Rechtecke erzeugen Java Basics - Anfänger-Themen 5
W Javadoc HTML erzeugen mit allen dependency Java Basics - Anfänger-Themen 11
J Delay erzeugen, ohne Programm zu blockieren Java Basics - Anfänger-Themen 7
Say abstract class und Objekt erzeugen - Dringend Hilfe Java Basics - Anfänger-Themen 10
BeginnerJava String mit vorgegebener Länge und Buchstaben erzeugen/ mit Leerstellen Java Basics - Anfänger-Themen 8
frager2345 Singleton-Muster Java ->Nur eine Instanz einer Klasse erzeugen können Java Basics - Anfänger-Themen 45
H Artefact mit Bild erzeugen Java Basics - Anfänger-Themen 11
E Rekursiv Objekte erzeugen - geht das? Java Basics - Anfänger-Themen 2
F Aus eingelesener Datei korrekt Objekte erzeugen Java Basics - Anfänger-Themen 5
D Hilfe beim Erzeugen eines Arrays NullPointerException wird ausgelöst Java Basics - Anfänger-Themen 11
C Runnable Jar-File erzeugen Java Basics - Anfänger-Themen 14
W Mehrfach das gleiche Attribut für ein Objekt erzeugen (mit verschiedenen Werten) Java Basics - Anfänger-Themen 2
Lena_2611 Vergleich von Array1 Index mit Array2 Wert und erzeugen eines neues Arrays Java Basics - Anfänger-Themen 8
C Instanzen, wann muss ich Instanzen erzeugen & wo?) Java Basics - Anfänger-Themen 23
S Erzeugen einer eindeutigen ID Java Basics - Anfänger-Themen 2
E Objekt durch Benutzer über Konsole erzeugen - Java Java Basics - Anfänger-Themen 3
L Simples Spielfeld erzeugen Java Basics - Anfänger-Themen 1
G Anklickbaren Text erzeugen Java Basics - Anfänger-Themen 2
I Object-Oriented Programming, Objekt erzeugen Java Basics - Anfänger-Themen 1
P Objekt aus String-Array erzeugen Java Basics - Anfänger-Themen 104
S Mit nextGaussian() positive Zahlen erzeugen? Java Basics - Anfänger-Themen 39
S Array erzeugen mit verschiedener Verteilung Java Basics - Anfänger-Themen 11
B Automatisch Objekte erzeugen mit verschiedenen Namen Java Basics - Anfänger-Themen 4
L Dynamische Anzahl an Arrays mit verschiedenen Namen erzeugen Java Basics - Anfänger-Themen 6
J Doppelte Ausgabe erzeugen Iterator Java Basics - Anfänger-Themen 6
N ArrayList in eigener Klasse erzeugen mit Zugriff Java Basics - Anfänger-Themen 7
K Methoden JTExtField mit Array erzeugen Java Basics - Anfänger-Themen 13
B Kann man eine Tabelle in Eclipse erzeugen und damit arbeiten? Java Basics - Anfänger-Themen 8
E Best Practice Jar-file mit zwei Klassen und externer Bibliothek über Konsole erzeugen Java Basics - Anfänger-Themen 13
I TextField Array mit for Loop erzeugen Java Basics - Anfänger-Themen 4
M Objekte mit einer Schleife mehrmals erzeugen Java Basics - Anfänger-Themen 17
G Objekt der selben Klasse wie selbst mit Aufrufen des Konstruktors erzeugen Java Basics - Anfänger-Themen 14
J Eindeutige Nummer (8 stellig) erzeugen Java Basics - Anfänger-Themen 9
C Instanz einer Klasse während if-Abfrage erzeugen und bei zweiter if-Abfrage wiederverwenden Java Basics - Anfänger-Themen 6
B OOP Objekt in IF erzeugen - funktioniert nicht so richtig Java Basics - Anfänger-Themen 11
neerual Int-Felder erzeugen Java Basics - Anfänger-Themen 16
R Objekte zur Laufzeit in Schleife erzeugen und in ArrayList ablegen Java Basics - Anfänger-Themen 4
D Erste Schritte Random erzeugen Java Basics - Anfänger-Themen 28
P Objekt mit =new in Methode erzeugen Java Basics - Anfänger-Themen 4
L Threads Laufbild Erzeugen Problem mit Aktualisieren des JPanels Java Basics - Anfänger-Themen 2
J In Java einen Ton erzeugen Java Basics - Anfänger-Themen 8
C Array Muster erzeugen Java Basics - Anfänger-Themen 2
S Objekte "gegebenfalls" erzeugen Java Basics - Anfänger-Themen 5
D Java Ausdruck erzeugen / Formular Java Basics - Anfänger-Themen 4
N Objekt in Methode einer anderen Klasse erzeugen Java Basics - Anfänger-Themen 9
R Baum erzeugen Java Basics - Anfänger-Themen 61
D Objekt per If erzeugen. Java Basics - Anfänger-Themen 11
J Bildschirmausgabe erzeugen Java Basics - Anfänger-Themen 30
J Objekt mit Methodendruchlauf erzeugen Java Basics - Anfänger-Themen 1
Detox Class Datei erzeugen nicht möglich über cmd Java Basics - Anfänger-Themen 1
P Erste Schritte [gelöst]Erzeugen einer Klasse aus der Klassenbibliothek Java Basics - Anfänger-Themen 4
C Int mit vorangestellten Nullen und maximal 4 stellen erzeugen. Java Basics - Anfänger-Themen 4
P Input/Output Objekte per Eingabe erzeugen Java Basics - Anfänger-Themen 1
D Erste Schritte Dynamisch Objekte erzeugen und diese durchsuchen Java Basics - Anfänger-Themen 7
U JNA: Strukturen erzeugen Java Basics - Anfänger-Themen 8
S Variablen Variable erzeugen und Array mit Variablen befüllen Java Basics - Anfänger-Themen 26
S Header- Datei erzeugen mit javah Java Basics - Anfänger-Themen 1
J Objekte zur Laufzeit erzeugen und direkt verwenden Java Basics - Anfänger-Themen 9
R Erste Schritte Schleife erzeugen (mit If Anweisung) Java Basics - Anfänger-Themen 3
I HTML Tabelle nur so lange erzeugen bis Höhe erreicht Java Basics - Anfänger-Themen 9
M Zusatzzahlen in array erzeugen Java Basics - Anfänger-Themen 5
B Stützstellen (Vektor) erzeugen? Java Basics - Anfänger-Themen 8
Z Erste Schritte 9x9 Felder Erzeugen+Aufrufen Java Basics - Anfänger-Themen 1
Y Variable Menge von Objekten erzeugen und mit ihren Attributen rechnen Java Basics - Anfänger-Themen 7
J Anzahl von for-Schleifen in Abhängigkeit von Zahleneingabe erzeugen Java Basics - Anfänger-Themen 1
J JLabels in schleife erzeugen mit verschiedenen namen? Java Basics - Anfänger-Themen 5
K JLabel zur Laufzeit dynamisch erzeugen Java Basics - Anfänger-Themen 7
F Input/Output Blocking file read erzeugen Java Basics - Anfänger-Themen 0
Thallius Klassen aus Classname programmatisch erzeugen. Wie geht das in java? Java Basics - Anfänger-Themen 5
B Zufallsdatum innerhalb eines bestimmten Bereiches erzeugen Java Basics - Anfänger-Themen 3
D JComboBox erzeugen Java Basics - Anfänger-Themen 1
J Erste Schritte Array dyn. erzeugen Java Basics - Anfänger-Themen 2
A OOP Objekte per Schleife erzeugen Java Basics - Anfänger-Themen 1
F Superklasse nochmals erzeugen? Java Basics - Anfänger-Themen 7
G Instanzen eines Interfaces erzeugen Java Basics - Anfänger-Themen 7
M Variablen Variable zur Laufzeit erzeugen Java Basics - Anfänger-Themen 3
P Vererbung Neues Objekt aus Vorlage erzeugen Java Basics - Anfänger-Themen 1
W Objekte erzeugen Java Basics - Anfänger-Themen 2
N Interface Interface (sinnvoll) erzeugen Java Basics - Anfänger-Themen 8
L 6stellige Zufallszahlen erzeugen & auf einzigartigkeit prüfen Java Basics - Anfänger-Themen 3
A Kleinste Ziffer im Array suchen um Sortierung zu erzeugen Java Basics - Anfänger-Themen 2
Joew0815 Interface JSON Objekte aus Java Objekten erzeugen Java Basics - Anfänger-Themen 9
B OOP Objekte erzeugen mit Hilfe einer for Schleife Java Basics - Anfänger-Themen 29
Helgon Baumstruktur tiefe N erzeugen Java Basics - Anfänger-Themen 3
X Mehrere Objekte erzeugen Java Basics - Anfänger-Themen 8
G OOP-Frage - Grundlegendes zum erzeugen von Klassen Java Basics - Anfänger-Themen 7
P Kapselung Variable innerhalb einer inneren Klasse ansprechen ohne ein Objekt erzeugen zu müssen? Java Basics - Anfänger-Themen 6
G Methoden BigInteger Zufallszahlen erzeugen Java Basics - Anfänger-Themen 5
Phash Kombinationen erzeugen Java Basics - Anfänger-Themen 4
M Initialisierungsblock beim Erzeugen einer Instanz Java Basics - Anfänger-Themen 6
B Ein Array von Map erzeugen, wie??? Java Basics - Anfänger-Themen 3
M Neues Objekt erzeugen mit Klassennamen oder ohne Java Basics - Anfänger-Themen 5
L Button erzeugen. Java Basics - Anfänger-Themen 4
Manello GUI mit exe erzeugen? Java Basics - Anfänger-Themen 3
StrikeTom Zufälliges Alphabet erzeugen Java Basics - Anfänger-Themen 6
D Textausgabe erzeugen Java Basics - Anfänger-Themen 11
C Methoden Objekte mit Hilfe einer Schleife in einer ArrayList erzeugen Java Basics - Anfänger-Themen 26
H Methoden Array aus Punkten erzeugen, mittels Punkt-Klasse Java Basics - Anfänger-Themen 5
G JObjekte dynamisch vom Server erzeugen lassen Java Basics - Anfänger-Themen 4
L dynamisches erzeugen von array Listen Java Basics - Anfänger-Themen 7

Ähnliche Java Themen

Neue Themen


Oben