Archief - [PROG]Java verwijderen in arrays

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

White Label

Legacy Member
Hoi

ik ben bezig met Java te leren maar ik zit vast.
Ik moet een arraylist maken met alle gebruikers die in een bepaalde maand en een bepaald jaar de club hebben gejoined. En ik moet die elementen ook verwijderen uit de arraylist van alle gebruikers (die arraylist noemt members).
Deze code had ik uitgewerkt maar ze werkt niet, ik krijg een foutmelding (ConcurrentModificationException en dan iets met null)

Code:
    public ArrayList purge(int month, int year)
    {
        ArrayList verwijder= new ArrayList();
        if(month >= 1 && month < 12)
        {
            Iterator it=members.iterator();
            Membership huidig;
            int index=0;
            while(it.hasNext())
            {
                huidig=(Membership)it.next();
                if(huidig.getMonth() == month && huidig.getYear()== year)
                {
                    verwijder.add(huidig);
                    members.remove(index);
                }
                else
                {
                    index++;
                }
            }
        }
        else
        {
            System.out.println("Dit is geen juiste waarde voor een maand!");
        }
        
        return verwijder;
    }

Kan iemand mij verderhelpen aub? :help:

Kn0t

Legacy Member
Je moet die verwijderen via je Iterator.

it.remove() dus ipv members.remove(index).

btw: 't moet <= 12 zijn zeker? :)

En gooi een IllegalArgumentException als de maand / jaar verkeerd is, ipv een println te doen.

Rajiv

Legacy Member
Rare manier voor je index te verhogen vind ik
Ik kan mis zijn, maar als ik ja methode ongeveer sna, zou die indexteller niet constant moeten optellen? (dus die uit de else halen)

White Label

Legacy Member
heel hard bedankt Kn0t :bow:

@Rajiv: nee, want als ik dat element verwijder wordt de index automatisch aangepast dus als ik het element met indexnr 1 verwijder dan krijgt het element met indexnr 2 automatisch het indexnr 1. Indien ik bv het element met indexnr 1 niet wil verwijderen moet hij naar het element met indexnr 2 gaan.
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan