tutorials.de Buch-Aktion 05/2012
Like Tree1Danke
  • 1 Beitrag von fassy
ERLEDIGT
NEIN
ANTWORTEN
2
ZUGRIFFE
1176
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    AvS AvS ist offline
    Registriert seit
    Mar 2002
    Ort
    borken|nrw
    Beiträge
    367
    Hi,

    ich habe zwei ArrayListen, die gegeneinander verglichen werden sollen. An sich funktioniert meine Methode
    Code java:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    
    public void removeNames() {
            for(String name : personList) {
                int tagIndex = 0;
                for(Tag tag : tagpool) {
                    String tagname = tag.getName().trim();
                if(name.contains(tagname)) 
                    {
                    tagpool.remove(tagIndex);
                        break;
                    }
                if(tagname.equalsIgnoreCase(name))
                    {
                    tagpool.remove(tagIndex);
                        break;
                    }
                tagIndex++;
                }
            }
        }
    Aber ich habe das Problem bspw. in der personList ein String "Peter" und in der tagpool-Liste "Peter" und "peter", nur einer der beiden Tags gelöscht wird.
     
    cash rules everything around me

  2. #2
    fassy fassy ist offline Mitglied Bronze
    Registriert seit
    Jan 2010
    Beiträge
    42
    Weil du mit dem break aus der Schleife springst., er findet "Peter", löscht "Peter" und springt mit dem break aus der Schleife.

    Code java:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    
        public void removeNames() {
            for (String name : personList) {
                int tagIndex = 0;
                for (Tag tag : tagpool) {
                    String tagname = tag.getName().trim();
                    if (name.contains(tagname)) {
                        tagpool.remove(tagIndex);
                        // break;
                    }
                    if (tagname.equalsIgnoreCase(name)) {
                        tagpool.remove(tagIndex);
                        break;
                    }
                    tagIndex++;
                }
            }
        }

    funktioniert für einen tagpool mit zwei elementen "Peter" und "peter", allerdigns dann nicht mit "Peter","peter" und "peTer". Aber das größere Problem ist das du in der Schleife versuchst eine Objekt aus der Liste zu entfernen über die grade iteriert wird. Das ist nie eine gute Idee und funktioniert auch nicht. Probier es lieber so:

    Code java:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    
        public void removeNames() {
            List<Tag> matched = new ArrayList<Tag>();
            for (Tag tag : tagpool) {
                String tagname = tag.getName().trim();
                for (String name : personList) {
                    if (tagname.equalsIgnoreCase(name)) {
                        matched.add(tag);
                        break;
                    }
                }
            }
            for (Tag t : matched) {
                tagpool.remove(t);
            }
        }
    }

    Viele Grüße
    f.
    Geändert von fassy (24.01.10 um 23:08 Uhr)
    AvS bedankt sich. 

  3. #3
    AvS AvS ist offline
    Registriert seit
    Mar 2002
    Ort
    borken|nrw
    Beiträge
    367
    Vielen vielen Dank ! Den Tipp werd ich mir definitiv merken
     
    cash rules everything around me

Ähnliche Themen

  1. 2 ArrayListen in Zeilen ausgeben
    Von javaxy im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 4
    Letzter Beitrag: 16.05.07, 19:34
  2. ArrayList soll ArrayListen aufnehmen
    Von Joerg66 im Forum Java
    Antworten: 7
    Letzter Beitrag: 16.10.05, 11:31
  3. cs1 im Vergleich zu cs2
    Von hubbl im Forum Photoshop
    Antworten: 3
    Letzter Beitrag: 12.08.05, 12:29
  4. Vergleich von JSF - JSP
    Von Milinge im Forum Enterprise Java (JEE, J2EE, Spring & Co.)
    Antworten: 4
    Letzter Beitrag: 09.03.05, 15:48
  5. Antworten: 0
    Letzter Beitrag: 01.06.04, 14:04