@Override
	public ISeq<Phenotype<G, C>> select(
		final Seq<Phenotype<G, C>> population,
		final int count,
		final Optimize opt
	) {
		if (count < 0) {
			throw new IllegalArgumentException(format(
				"Selection count must be greater or equal then zero, but was %s.",
				count
			));
		}

		ISeq<Phenotype<G, C>> result;
		if (population.isEmpty() || count == 0) {
			result = ISeq.empty();
		} else {
			final int ec = min(count, _eliteCount);
			result = ELITE_SELECTOR.select(population, ec, opt);
			result = result.append(
				_nonEliteSelector.select(population, max(0, count - ec), opt)
			);
		}

		return result;
	}
Create a new elite selector with elite count 1, and the selector for
selecting the rest of the population is initialized with
{@code TournamentSelector<>(3)}
jenetics/src/main/java/io/jenetics/EliteSelector.java