Не могу понять принцип заполнения коллекции - почему i < cats.length, если у нас коллекция создана Map?
for (int i = 0; i < cats.length; i++) {
map.put(cats[i], new Cat(cats[i]));}