Dit is mijn code en hiermee krijg ik een IlligalStateException omdat ik "remove" twee keer aanroep zonder een "next" ertussen. Toch zou dit volgens mij moeten werken.
De positie van het object in listB is altijd verder dan die van listA. Als ik het huidige object in listB dus eerst verwijder gebeurd er niks met de positie van het huidige object in listA. Jammer genoeg als ik dus het huidige object in listA probeer te verwijderen krijg ik de exception terwijl er helemaal niks is veranderd met het object in listA. Weet iemand hier een oplossing voor of een andere goede manier om in de lijst twee objecten te vergelijken er dan iets mee te doen om tenslotte verwijderd te worden.
De positie van het object in listB is altijd verder dan die van listA. Als ik het huidige object in listB dus eerst verwijder gebeurd er niks met de positie van het huidige object in listA. Jammer genoeg als ik dus het huidige object in listA probeer te verwijderen krijg ik de exception terwijl er helemaal niks is veranderd met het object in listA. Weet iemand hier een oplossing voor of een andere goede manier om in de lijst twee objecten te vergelijken er dan iets mee te doen om tenslotte verwijderd te worden.
Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
| public void run() { System.out.println("Executing the matching!"); Iterator<Contestant> listA = contestantList.iterator(); while (listA.hasNext() && contestantList.size()>1) { boolean matched=false; Contestant contestantA = listA.next(); Iterator<Contestant> listB = listA; while ((listB.hasNext()) && (contestantList.size()>1) && (!matched)) { Contestant contestantB = listB.next(); if (isMatch(contestantA,contestantB)) { matched=true; // do something with them here... listB.remove(); listA.remove(); } } } } |
Inside The Matrix, they are everyone, and they are no one.