No, that's not the problem. the list will be filled correctly. The reason why it looks like shit is because i've tried cleaner methods with less code, but none of them work. in every scenario the list will be filled correctly, but when i try to remove fighters from the barracks from the contents of toRemoveFightersFromBarracks, it will never work with duplicates
the reason why i posted this topic is to understand what the problem is exactly.
also with your code the toremove list contains 2 'W' 's and mine contains warw which is correct
( barracks.callFighters("warw", Combat.RANGED); )