Java: Auf das i-te Element einer Liste zugreifen

Dieses Thema im Forum "Mac OS Entwickler, Programmierer" wurde erstellt von misterbecks, 29.01.2006.

  1. misterbecks

    misterbecks Thread Starter MacUser Mitglied

    Beiträge:
    2.037
    Zustimmungen:
    16
    Mitglied seit:
    06.11.2004
    Ich habe ein kleines Java Problem. Wie greife ich auf das i-te Element einer Liste zu? Mir ist klar, dass ich durch Iteration zu den einzelnen Elementen der Liste gelange, aber wie stoppe ich die Iteraion an dem i-ten Element und greife auf den Wert zu?
     
  2. Dieter Maak

    Dieter Maak MacUser Mitglied

    Beiträge:
    24
    Zustimmungen:
    0
    Mitglied seit:
    11.06.2004
    Hi, was meinst Du mit Liste??? Wenn die Liste ein String ist, kannst du mit der Hilfsklasse SringTokenizer arbeiten. Der String wird in Tokens(Teilstrings) zerlegt. Als Treenzeichen wird defaultmässig das Zeichen \n, \r, \t, und blank verwendet. Beispiel:
    public StringTokenizer(String blah); Hier wird der Sting "blah" ünergeben. Wenn Du weitere (eigene Trennzeichen benötigst, kannst Du einen zweiten String übergeben, der als Inhalt die nötigen trennzeichen hat: public StringTokenizer(String blah, String mäh);
     
  3. oneOeight

    oneOeight MacUser Mitglied

    Beiträge:
    47.812
    Zustimmungen:
    3.797
    Mitglied seit:
    23.11.2004
    ist das jetzt eher eine programmier-technische frage?
    das stoppen machst du mit der schleifen-abbruch-bedingung...

    in java bieten allerdings die meisten datentypen auch einen direkten index zugriff.
    listen verwendet man da ja kaum, weil die meisten array-ähnlichen datentypen dynamische größen haben...
     
  4. misterbecks

    misterbecks Thread Starter MacUser Mitglied

    Beiträge:
    2.037
    Zustimmungen:
    16
    Mitglied seit:
    06.11.2004
    Nein, kein String, da wäre der Zugriff auf ein Element simpel. Ich meine eine (einfach verkette) Liste.
     
  5. misterbecks

    misterbecks Thread Starter MacUser Mitglied

    Beiträge:
    2.037
    Zustimmungen:
    16
    Mitglied seit:
    06.11.2004
    Ja.

    Code:
    public int size() {
            int result = 0;
            ListIterator iter = iterator();
            while(iter.hasNext()) {
                result++;
                iter.next();
            }
            return result;
        }
    
    Ist z.B. die Methode für die Größe der Liste. Nun ist unklar, wo und wie ich die Bedingung für den Halt am i-ten Element einfüge.....
     
  6. oneOeight

    oneOeight MacUser Mitglied

    Beiträge:
    47.812
    Zustimmungen:
    3.797
    Mitglied seit:
    23.11.2004
    result wert abfragen und mit einem break aus der schleife raus...
    allerdings solltest du natürlich result vor dem post-inkrement checken ;)

    vielleicht bietet sich hier eher das do-while-statement an...
     
  7. rash65

    rash65 unregistriert

    Beiträge:
    111
    Zustimmungen:
    0
    Mitglied seit:
    27.10.2004
    Code:
    public Element getElement(int index) {
            ListIterator iter = iterator();
            while(index>0) {
                iter.next();
                index--;
            }
            return iter.getElement();
    }
    Hab halt keine Ahnung, was ihr da zurückgeben sollt und wie die Funktionen eurer Liste sind, aber die Grundidee sollte rüberkommen, oder?
     
  8. misterbecks

    misterbecks Thread Starter MacUser Mitglied

    Beiträge:
    2.037
    Zustimmungen:
    16
    Mitglied seit:
    06.11.2004
    Ja, die Idee ist klar. Werde damit mal weiterarbeiten, danke.
     
  9. Trinil

    Trinil MacUser Mitglied

    Beiträge:
    31
    Zustimmungen:
    0
    Mitglied seit:
    12.10.2005
    Code:
    list.get(i)
     
  10. rash65

    rash65 unregistriert

    Beiträge:
    111
    Zustimmungen:
    0
    Mitglied seit:
    27.10.2004
    Genial!
     
Die Seite wird geladen...

Diese Seite empfehlen