View Javadoc
1   package net.bmahe.genetics4j.core.util;
2   
3   import java.util.Comparator;
4   import java.util.Objects;
5   
6   import net.bmahe.genetics4j.core.Individual;
7   import net.bmahe.genetics4j.core.spec.AbstractEAConfiguration;
8   
9   public class IndividualUtils {
10  
11  	private IndividualUtils() {
12  	}
13  
14  	public static <T extends Comparable<T>> Comparator<Individual<T>> fitnessBasedComparator(
15  			final AbstractEAConfiguration<T> eaConfiguration) {
16  		Objects.requireNonNull(eaConfiguration);
17  
18  		final Comparator<Individual<T>> individualComparator = Comparator.comparing(Individual<T>::fitness);
19  
20  		return switch (eaConfiguration.optimization()) {
21  			case MAXIMIZE -> individualComparator;
22  			case MINIMIZE -> individualComparator.reversed();
23  		};
24  	}
25  }