question: public void mutate ( List < AggregationIndividual > population ) { List < AggregationIndividual > children = new ArrayList < AggregationIndividual > ( ) ; Iterator < AggregationIndividual > i = population . iterator ( ) ; while ( i . hasNext ( ) ) { AggregationIndividual individual = i . next ( ) ; int [ ] parent = individual . getIndividual ( ) ; int [ ] child = new int [ parent . length ] ; for ( int j = 0 ; j < child . length ; j ++ ) { child [ j ] = parent [ j ] ; } mutate ( child ) ; if ( isValid ( child ) ) { children . add ( new AggregationIndividual ( child ) ) ; } } population . addAll ( children ) ; }
target:  Invokes the method mutate(int[]) for each individual. The parents are kept.