code: private static <T> List<EvolutionEngine<T>> createIslands(int islandCount,
                                                                CandidateFactory<T> candidateFactory,
                                                                EvolutionaryOperator<T> evolutionScheme,
                                                                FitnessEvaluator<? super T> fitnessEvaluator,
                                                                SelectionStrategy<? super T> selectionStrategy,
                                                                Random rng)
      {
          List<EvolutionEngine<T>> islands = new ArrayList<EvolutionEngine<T>>(islandCount);
          for (int i = 0; i < islandCount; i++)
          {
              GenerationalEvolutionEngine<T> island = new GenerationalEvolutionEngine<T>(candidateFactory,
                                                                                         evolutionScheme,
                                                                                         fitnessEvaluator,
                                                                                         selectionStrategy,
                                                                                         rng);
              island.setSingleThreaded(true); // Don't need fine-grained concurrency when each island is on a separate thread.
              islands.add(island);
          }
          return islands;
      }
docs: Helper method used by the constructor to create the individual islands if they haven't
  been provided already (via the other constructor).