Этот код означает, что p.ships
является частью целого набора реализаций inteface Iterable
.
for(Ship s: p.ships)
Это цикл foreach.Синтаксис Sugar, который был введен в Java 5.
Это эквивалентно приведенному выше утверждению:
for (Iterator<Ship > i = p.ships.iterator(); i.hasNext();) {
Ship s= i.next();
}