Fibonacci Rabbits in Java..

I got a ConcurrentModificationException in my first try and my second tried made me realise my matesOnYear implementation was wrong (off by 1)!

So it took me 3 iterations! Following nice images and explanations are stolen from this page.


And here is my implementation..
import java.util.LinkedList;
import java.util.List;
 
public class MatingRabbits {
 
    public static void main(final String[] args) {
 
        final List<RabbitCouple> rabbitCoupleList = new LinkedList<RabbitCouple>();
        rabbitCoupleList.add(new RabbitCouple(0));
        for (int year = 0; year < 12; year++) {
            final List<RabbitCouple> newRabbits = new LinkedList<RabbitCouple>();
            for (RabbitCouple rabbitCouple : rabbitCoupleList) {
                if (rabbitCouple.matesOnYear(year)) {
                    newRabbits.add(new RabbitCouple(year));
                }
            }
            rabbitCoupleList.addAll(newRabbits);
            System.out.print(rabbitCoupleList.size() + " ");
        }
    }
}
 
class RabbitCouple {
 
    final int birthYear;
 
    RabbitCouple(final int birthYear) {
        this.birthYear = birthYear;
    }
 
    boolean matesOnYear(final int year) {
        return year > birthYear + 1;
    }
}