tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
8
ZUGRIFFE
548
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    soa soa ist offline Mitglied Brokat
    Registriert seit
    Jun 2004
    Beiträge
    336
    Hallo zusammen,

    jetzt muss ich leider noch einmal eine Frage zu Arbeiten mit Vektoren stellen.

    Folgendes Beispiel:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    
     
    //Ein Vektor
     
    Vector v = new Vector ( 10, 10);
     
    String name = "";
    long nummer = 0;
     
    Obj o = new Obj (name, nummer);
     
    //Das Objekt geht jetzt in den Vektor:
     
    v.add(o);

    So, nun habe ich also viele Objekte angelegt, die jeweils aus einem Namen und einer Nummer bestehen. Jetzt möchte ich mit diesen Objekten arbeiten.

    Beispielsweise möchte ich einfach alle Einträge ausgeben.
    Bei mir kommt bei der Ausgabe immer das Objekt mit einer Zahl, die vom Vektor vergeben wird. Es soll aber der Name und die Nummer erscheinen.

    Das gleiche Problem habe ich beim Vergleichen der Einträge, um ein Objekt zu löschen oder zu ändern. Es soll ja Name und Nummer verglichen werden.....

    Über ein Codebeispiel wäre ich sehr verbunden.

    Vielen Dank

    Gruß
    SOA
     

  2. #2
    Shizzl_chrizzl Shizzl_chrizzl ist offline Mitglied Gold
    Registriert seit
    Oct 2004
    Beiträge
    144
    ja ist klar der gibt dir den index aus...


    for(int i = 0, i < vector.size(); i++){

    String item = vector.elementAt(i);

    System.out.println(item);
    }

    so in der art müsste es funktionieren natürlich ist das nur ein beispiel du musst ja noch den long handlen
    Geändert von Shizzl_chrizzl (26.11.04 um 12:55 Uhr)
     

  3. #3
    soa soa ist offline Mitglied Brokat
    Registriert seit
    Jun 2004
    Beiträge
    336
    Code :
    1
    2
    3
    4
    5
    
    public void getEintraege() {
        for ( int i=0; i<v.size(); i++ ) {
          o = (Telefonlisteneintrag)v.get(i);
          System.out.println(o);
        }

    Ja, genau.... So in etwa sieht das bei mir auch aus.

    Aber wie handle ich dann jetzt die Ausgabe?

    Wie splitte ich das Object wieder auseinander?
     

  4. #4
    Shizzl_chrizzl Shizzl_chrizzl ist offline Mitglied Gold
    Registriert seit
    Oct 2004
    Beiträge
    144
    ja du hast doch jetzt deine ausgabe

    Max Musterman 01654/66567 irgendwie so in der Art.

    Und wenn du das als Objekt gespeichert hast , hast den Namen und die Nummer doch separat abgelegt oder Sonst könntest es ja nicht direkt splitten.

    dann machst einfach:

    System.out.println(o.Name);
    System.out.println(o.Nummer); // ka wie deine Objekte heißen

    und dann gibt er es die ja separat aus. Wobei ich dann eigentlich nicht verstehe warum du einen zweidimensionalen Vector hast da das ja total unsinnig ist... hmm klärst mich sicher gleich auf
    Geändert von Shizzl_chrizzl (26.11.04 um 13:17 Uhr)
     

  5. #5
    Avatar von Bernd1984
    Bernd1984 Bernd1984 ist offline Kastenbrot
    Registriert seit
    Oct 2004
    Beiträge
    414
    Hallo,

    für die Ausgabe kannst du auch die toString()-Methode von Obj überschreiben.

    Dann kannst du mit System.out.println(o); die Daten schon formatiert ausgeben
    Geändert von Bernd1984 (26.11.04 um 13:23 Uhr)
     
    Gruss Bernd
    Zitat Zitat von mAu
    * Unformatierten Quellcode schaue ich mir _nicht_ an!
    * Sollte ich euch bei einer Frage weitergeholfen haben, würde ich mich über eine positive Bewertung freuen.
    * Bitte die Netiquette beachten.
    * Vergesst nicht, beantwortete Fragen als erledigt zu markieren!

  6. #6
    soa soa ist offline Mitglied Brokat
    Registriert seit
    Jun 2004
    Beiträge
    336
    jo, klasse !

    Vielen Dank..

    P.S. Das ist kein zweidimensionaler Vektor.

    Vektoren kennzeichnen sich dadurch, dass Sie, im Gegensatz zum Arrray, keine Endkapazität haben. Man kann in einen Vektor also beliebig viele Objekte einpflegen.
    In meinem Beispiel bedeutet das, dass sich die Kapazität des Vektors automatisch um 10
    erhöht, wenn sich 10 Objekte bereits im vektor befinden.
    Man macht das, um die Systemresourcen zu schonen.

    Ein schönes Wochenende
     

  7. #7
    Shizzl_chrizzl Shizzl_chrizzl ist offline Mitglied Gold
    Registriert seit
    Oct 2004
    Beiträge
    144
    aso ich verstehe, ja mei war noch ne gute Lehrstunde zum We
     

  8. #8
    soa soa ist offline Mitglied Brokat
    Registriert seit
    Jun 2004
    Beiträge
    336
    Nun noch eines:

    Ich möchte eine methode erstellen, mit deren Hilfe ich die Einträge ändern kann:

    Mein Vorschlag:


    [CODE]

    public void eintragAendern()throws IOException{
    System.out.println("Hier koennen Sie einen Eintrag abaendern:");
    System.out.println("-----------------------------------------");
    System.out.println("Geben Sie die Daten ein, die geaendert werden sollen:");
    System.out.println("");
    obj = new Telefonlisteneintrag(o.getInputString(), o.getInputNumm());
    for ( int i=0; i<v.size(); i++ ) {
    if (((Telefonlisteneintrag) v.get(i)).equals(obj) == true){

    System.out.println("Neue Daten eingeben");
    System.out.println("----------------------");
    System.out.println("");
    name = o.getInputString();
    nummer = o.getInputNummer();
    obj1 = new Telefonlisteneintrag(name, nummer);
    int index;
    index = v.indexOf(obj1);
    v.set(index, obj1);
    System.out.println("Eintrag erfolgreich geaendert!");
    }//if
    }//For
    }//EintragAendern
    [CODE]

    Leider läuft die Methode nicht. Der Vergleich der Objekte funktioniert so irgendwie nicht!
    Über einen helfenden rat wäre ich sehr dankbar


    Grüsse
    SOA
     

  9. #9
    Avatar von cham
    cham cham ist offline Mitglied Gold
    Registriert seit
    Oct 2003
    Ort
    Gera
    Beiträge
    183
    so wie du das implementiert hast werden nicht die objekte sondern die HashWerte der Objekte verglichen. Das Du mit new eine neue Instanz des Objektes Telefonlisteneintrag anlegst, sind beide Objekte unterschiedlich. (Mit nem System.out auf Telefonlisteneintrag .hashCode siehst du das auch) . Zum Vergleichen müsste das Objekt comparable implementieren und Du müsstest den ensprechenden Comparator angeben. Einfacher wäre aber ein Vergleich nach einer ID oder ähnlichem.
     
    Kaum macht man's richtig, schon funktionierts.

Ähnliche Themen

  1. Noch eine Frage zu Tasten...
    Von webraccoon im Forum C/C++
    Antworten: 1
    Letzter Beitrag: 05.02.05, 17:10
  2. Noch eine Frage zum Texturieren!
    Von Snap im Forum 3D Studio Max
    Antworten: 0
    Letzter Beitrag: 29.03.03, 19:12
  3. Noch eine frage zu lasern
    Von pyr0t0n im Forum 3D Studio Max
    Antworten: 8
    Letzter Beitrag: 31.12.02, 20:01
  4. Noch eine Frage zu 512 mb Ram
    Von Tobygee im Forum Hardware
    Antworten: 7
    Letzter Beitrag: 16.08.02, 08:09
  5. Habe noch eine FRAGE?
    Von Muttiknutscher im Forum Photoshop
    Antworten: 4
    Letzter Beitrag: 11.04.02, 22:20