Vector mit 'dynamischem Namen' möglich?

Von: , Frage gestellt am Do, 14. Jan 2010

Hallo,
bin gerade am rumspielen mit Vektoren. Über

Vector vec = new Vector();

lässt sich problemlos ein Vektor erstellen. Nun meine Frage:
Kann ich mir auch Vektoren, je nach Bedarf erstellen lassen?
Um es zu verdeutlichen folgendes Beispiel:
for(int i=0; i<=x; i++)
{
Vector 'vec'+i = new Vector();
}

Also quasi, dass bei jedem Schleifendurchlauf ein neuer Vektor mit namen z.B. vec1 vec2 u.s.w. erstellt wird?? Oder wie löst man sowas sinnvoller?
(Das es so nicht geht habe ich natürlich schon gemerkt ;D)

Mfg

5 Antworten zu dieser Frage

  1. Antwort von nach 10 Stunden 0 hilfreich
    Re: Vector mit 'dynamischem Namen' möglich?

    Du hast ja schon gemerkt, dass so etwas in Java nicht funktioniert. Das ist wohl eher was für die dynamischeren Sprachen, vielleicht können Ruby, Groovy & Co diese Programmierweise.

    Es steht Dir natürlich frei, einen Vector in einen Vector zu packen. Oder eine Map zu verwenden, in die Du verschiedenen Vectors mit unterschiedlichen Strings als Keys packst.

    • Antwort von nach einem Tag 0 hilfreich
      Re^2: Vector mit 'dynamischem Namen' möglich?

      Hallo,

      habe bisher mit Notepad++ den Code geschrieben und auf der Konsole compiliert. Seit 2 Tage hab ich mich aber mal an Eclipse rangetraut. Eclipse hat dann auch bemängelt, dass ich keinen Typ bei dem Vektor angegeben habe ;-)

      Ich glaube ich habe das mit den Vektoren jetzt soweit verstanden, vielen Dank an Alle für die Antworten!!

  2. Antwort von nach 12 Stunden 0 hilfreich
    Re: Vector mit 'dynamischem Namen' möglich?

    Hallo. Kann ich mir auch Vektoren, je nach Bedarf erstellen lassen?
    Um es zu verdeutlichen folgendes Beispiel:

    for(int i=0; i<=x; i++)
    {
    Vector 'vec'+i = new Vector();
    }
    

    Also quasi, dass bei jedem Schleifendurchlauf ein neuer Vektor
    mit namen z.B. vec1 vec2 u.s.w. erstellt wird?? Oder wie löst
    man sowas sinnvoller?
    Du könntest ein Array von Vector machen. Oder alternativ einen Vector nutzen.
    Dort kannst du ja Objekte gleichen Typs (ok, auch verschiedenen Typs, erben ja alle von Object) in beliebiger Anzahl reinpacken. Somit kannst du auch einen Vector erstellen und dort die Vectoren reinpacken, die du brauchst. Also sowas in der Art:
    Vector container = new Vector();
    for (int i=0; i<x; i++)
    {
    container.add(new Vector());
    }
    


    Sebastian.

    • Antwort von nach 13 Stunden 0 hilfreich
      Re^2: Vector mit 'dynamischem Namen' möglich?

      Du könntest ein Array von Vector machen. Oder alternativ einen
      Vector nutzen.
      Dort kannst du ja Objekte gleichen Typs (ok, auch
      verschiedenen Typs, erben ja alle von Object) in beliebiger
      Anzahl reinpacken.
      Da sollte man vorsichtig mit sein. Der Vector sollte IMMER mit einer Typklasse benutzt werden, also:

      Vector<String> v = new Vector<String>();
      

      oder soetwas. Warum genau, darüber haben sich die Entwickler auf der Sun Seite besser zu ausgelassen, als ich das hier könnte.

      • Antwort von nach 14 Stunden 0 hilfreich
        Re^3: Vector mit 'dynamischem Namen' möglich?

        Hallo. Da sollte man vorsichtig mit sein. Der Vector sollte IMMER mit
        einer Typklasse benutzt werden, also:

        Vector<String> v = new Vector<String>();
        

        oder soetwas. Warum genau, darüber haben sich die Entwickler
        auf der Sun Seite besser zu ausgelassen, als ich das hier
        könnte.
        Da stimme ich dir vollkommen zu, hab es nur der Einfachheit halber weggelassen. Wenn man eine Java-Version nutzt, die das unterstützt (1.4 konnte das noch nicht), sollte man das tun.
        Bei einem Vector im Vector sähe das dann ja in etwa so aus:
        Vector<Vector<String>> container = new Vector<Vector<String>>();
        for (i=0; i<x; i++)
        container.add(new Vector<String>());
        }
        


        Sebastian.

Keine passende Antwort gefunden? Jetzt eigene Frage stellen!