variabler variablenname

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
tach,

ich wüsste gerne, ob es mit java möglich ist variablen variablennamen zu benutzen.
für mein kleines programm soll nämlich eine variable anzahl von objekten erzeugt werden, und ich wüsste jetzt nicht wie ich das anders machen kann, als einen variablen variablenname, was mich ja nicht wirklich weiterbringt, da ich nicht weiß ob und wie das geht ;)

wäre also nett wenn mich jemand aufklären könnte, oder mir eine bessere lösung für mein problem sagen könnte.

achso vielleicht noch wichtig: lerne java erst seit zwei monaten in der uni, kann daher noch nicht zu viel ;)
 
Ein Beispiel für einen einfachen dynamischen Listentyp ist java.util.Vector<E>.

Beispiel:
Du willst eine unbestimmte Anzahl von String-Objekten abspeichern (es kann auch jedes andere Objekt oder einfach Object selbst sein).

Hier ein Paar Anwendungsbeispiele:
Code:
Vector<String> stringVector = new Vector<String>(); //Neuen Vector anlegen, der Strings speichert. Du kannst eine bestimmte Anfangsgröße des Vectors festlegen in dem du dem Konstruktor ein int >= 0 als Argument übergibst.
...
String firstString = "Mein erster String";
stringVector.add(firstString); //Fügt den String zum Vector hinzu. Ist nicht ausreichend Platz im Vector vorhanden, wird dieser automatisch vergrößert.
...
if (stringVector.contains(firstString)) //Überprüft, ob der String firstString im Vector enhalten ist
     System.out.println(stringVector.get(stringVector.indexOf(firstString))); //Findet zuerst den Index von firstString im Vector heraus und lässt sich das Objekt an dieser Position (logischerweise ist das firstString) dann übergeben um es auf der Konsole auszugeben.
...
String[] strings = vector.toArray(new String[vector.size()]); //Gibt alle Elemente des Vectors in einem Array mit der Größe der Anzahl aller in dem Vector enthaltenen Elemente zurück. Folgendes funktioniert nicht: (String[]) stringVector.toString(); !!!!! --> ClassCastException
for(String string : strings) //Durch den Array iterieren und alle String auf der Konsole ausgeben
     System.out.println(string);

Gruß,
Jan.
 

Yzebär

Bekanntes Mitglied
Ich würde anstelle eines Vector eine HashMap benutzen, da man hier Objekte anhand eines Namens abrufen kann.
Code:
HashMap<String, Object> variablenMap = new HashMap<String, Object>();
String variablenName = "irgendEinName";
Object object = new IrgendEinObject();
variablenMap.put( variablenName, object );
...
Object object2 = (IrgendEinObject)variablenMap.get(variablenName);
Anstelle des Typs Object kann auch ein anderer fester Typ angegeben werden, dann erspart man sich das casten bei der get-Methode. Ich verwende die HashMap ganz gern, wenn ich eine variable Anzahl von Werten habe, die ich in verschiedenen Programmteilen mit einem Namen abrufen möchte. Das ist in bestimmten Fällen eleganter zu verwenden, als durch eine Collection (ein Vector ist ja auch eine Art Collection) oder ArrayList zu iterieren und dort einen bestimmten Wert zu suchen.
 
Stimmt, die HashMap hatte ich ganz vergessen. Ist praktischer von der Handhabung, änhlich wie einer Array unter PHP vom Indexsystem her nur halt variable. :)
 

SnooP

Top Contributor
und anstelle dessen ;) - sollte man ArrayList (ähnlich zu Vector) oder aber LinkedList verwenden ;) .. zudem ist Vector überall synchronized und daher eher langsamer, wenn man für Threads synchronisierte Listen benötigt, gibt es bessere thread-safe Lösungen als Vector.
Also Streiche Vector, setze ArrayList oder LinkedList ;)
 
G

Guest

Gast
danke euch

werde mal versuchen den code den ihre da geschrieben habt zu entziffern und ihn dann ausprobieren.
 
G

Guest

Gast
sorry leute irgendwie sagt mir das irgendwie alles nichts. wäre also nett, wenn ihr mir irgendwie bei dem codeteil weiterhelfen könntet.

aus dem hier:

Code:
Objekt name1 = new Objekt();
Objekt name2 = new Objekt();
Objekt name3 = new Objekt();
...
Objekt nameN = new Objekt();

das zu machen.

wäre echt nett :)
 

hupfdule

Top Contributor
Code:
List<Object> name= new ArrayList<Object>();
name.add(new Object());
name.add(new Object());
name.add(new Object());
...
name.add(new Object());

Zugreifen kannst du dann über
Code:
name.get(0);
name.get(1);
name.get(2);
...
name.get(n);
 
G

Guest

Gast
das hat mir leider irgendwie nicht weitergeholfen. als ich das versucht habe zu übernehmen konnte es nicht ausgeführt werden. vielleicht kann mir nochmal jemand helfen und sagen wo hier der fehler drin ist:

Code:
List<Point> name= new ArrayList<Point>();
name.add(new Point(1,5));
name.add(new Point(2,4));
name.add(new Point(3,0));
		
System.out.println (name.get(0).toString());

ps: wie erwähnt erst zwei monate mit java zu tun, also noch nicht so die leuchte ;)[/code]
 

Wildcard

Top Contributor
Anonymous hat gesagt.:
das hat mir leider irgendwie nicht weitergeholfen. als ich das versucht habe zu übernehmen konnte es nicht ausgeführt werden. vielleicht kann mir nochmal jemand helfen und sagen wo hier der fehler drin ist:
Der Code sieht richtig aus, was ist das Problem?
 

Andron

Mitglied
Die Frage ist, was du mit der Ausgabe ausgeben willst?

Mit name.get(x) holst du dir ein Objekt aus der Liste.

Dieses Objekt ist vom Typ Point. Hat also alle Attribute und Methoden vom Point-Objekt. Z.B. Attribute wie x und y.
Willst du dir diese Attribute ausgeben lassen, dann geht das so

System.out.println(name.get(0).x);

Hoffe, ich konnte dir weiter helfen
 

Leroy42

Top Contributor
So funktioniert's:

Code:
ArrayList<Point> name= new ArrayList<Point>(); 
name.add(new Point(1,5)); 
name.add(new Point(2,4)); 
name.add(new Point(3,0)); 
       
System.out.println (name.get(0).toString());
 
G

Guest

Gast
geht leider auch nicht :)

die fehlermeldung die ich beim kompilieren erhalte ist folgende:

test.java:4: cannot find symbol
symbol : class ArrayList
location: class test
ArrayList<Point> name= new ArrayList<Point>();
^
test.java:4: cannot find symbol
symbol : class ArrayList
location: class test
ArrayList<Point> name= new ArrayList<Point>();
 

Leroy42

Top Contributor
Stimmt!

Ich hatte bei
Code:
List<Point> name = ...
zuerst einen Fehler angezeigt bekommen,
der ergab sich aber daraus, daß List ambiguous war (Swing/Util) :oops:
 
G

Guest

Gast
danke mann.
jetzt geht es :) ich hoffe ich bekomm damit jetzt alles hin was ich will.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
L Iteratorform und Methode mit variabler Parameterzahl Java Basics - Anfänger-Themen 31
IMain23 2d Array variabler Spaltenwert, Spaltenwert immer um eins erhöhen Java Basics - Anfänger-Themen 3
A Variabler Rekursionsaufruf, aber wie? Java Basics - Anfänger-Themen 6
T Methoden Auf Variabler aus anderer Methode zugreifen Java Basics - Anfänger-Themen 5
G Variabler String Java Basics - Anfänger-Themen 5
M Strings mit variabler Länge auffüllen Java Basics - Anfänger-Themen 6
F Variabler Aufruf einer Methode Java Basics - Anfänger-Themen 10
F Variabler - Robot - Tastatureingaben Java Basics - Anfänger-Themen 5
U Variabler Rückgabetyp und Klasse an Methode übergeben? Java Basics - Anfänger-Themen 5
J Quadrat mit variabler Kantenlänge Java Basics - Anfänger-Themen 3
A Variabler Identifier Java Basics - Anfänger-Themen 6
R variabler cast Java Basics - Anfänger-Themen 5
C GridBagLayout BIld an variabler Stelle einfügen Java Basics - Anfänger-Themen 2
G problem mit variabler Java Basics - Anfänger-Themen 5
J Char-Array mit variabler Länge zurückliefern. Java Basics - Anfänger-Themen 11
R String[][] mit variabler länge Java Basics - Anfänger-Themen 4
S Variabler Name für ein Objekt einer Klasse? Java Basics - Anfänger-Themen 10
M Variabler/dynamischer Objektname? Java Basics - Anfänger-Themen 12
L Variablen Dynamische Variablenname Java Basics - Anfänger-Themen 9
K Variablenname soll der Inhalt vom String sein Java Basics - Anfänger-Themen 2
F String -> Variablenname Java Basics - Anfänger-Themen 9
Devil0s Java variable in Variablenname Java Basics - Anfänger-Themen 21
H variablenname errechnen Java Basics - Anfänger-Themen 11
M Schleifenzähler an Variablenname anhängen Java Basics - Anfänger-Themen 6
D Variablenname aus Variable ? Java Basics - Anfänger-Themen 15
M Variablenname mithilfe einer schleife erstellen? Java Basics - Anfänger-Themen 2
G Variablenname dynamisch vergeben Java Basics - Anfänger-Themen 10
H Variablenname dynamisch festlegen Java Basics - Anfänger-Themen 3
H Variablenname dynamisch festlegen Java Basics - Anfänger-Themen 3
A Variablenname aus Array laden! Java Basics - Anfänger-Themen 11
Bierhumpen Variablenname übergeben? Java Basics - Anfänger-Themen 11
H Variablenname in Schleife ändern Java Basics - Anfänger-Themen 2
G String soll als Variablenname dienen Java Basics - Anfänger-Themen 19
B Variablenname ermitteln Java Basics - Anfänger-Themen 19
A Variablenname aus Variablen zusammensetzen? Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben