Package io.jenetics
Class CharacterChromosome
- java.lang.Object
-
- io.jenetics.AbstractChromosome<G>
-
- io.jenetics.CharacterChromosome
-
- All Implemented Interfaces:
Chromosome<CharacterGene>,BaseSeq<CharacterGene>,Factory<Chromosome<CharacterGene>>,Verifiable,Serializable,CharSequence,Iterable<CharacterGene>,RandomAccess
public class CharacterChromosome extends AbstractChromosome<G> implements CharSequence, Serializable
CharacterChromosome which represents character sequences.- Since:
- 1.0
- Version:
- 6.1
- See Also:
CharacterGene, Serialized Form- Implementation Note:
- This class is immutable and thread-safe.
-
-
Field Summary
-
Fields inherited from class io.jenetics.AbstractChromosome
_genes, _valid
-
-
Constructor Summary
Constructors Modifier Constructor Description protectedCharacterChromosome(ISeq<CharacterGene> genes, IntRange lengthRange)Create a new chromosome from the givengenesarray.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description charcharAt(int index)booleanequals(Object obj)inthashCode()IntRangelengthRange()Return the allowed length range of the chromosome.CharacterChromosomemap(Function<? super char[],char[]> f)Maps the gene alleles of this chromosome, given aschar[]array, by applying the given mapper functionf.CharacterChromosomenewInstance()Create a new, random chromosome.CharacterChromosomenewInstance(ISeq<CharacterGene> genes)A factory method which creates a newChromosomeof specific type and the givengenes.static CharacterChromosomeof(int length)Create a new chromosome with theCharacterGene.DEFAULT_CHARACTERSchar set as valid characters.static CharacterChromosomeof(CharSeq validCharacters, int length)Create a new chromosome with thevalidCharacterschar set as valid characters.static CharacterChromosomeof(CharSeq validCharacters, IntRange lengthRange)Create a new chromosome with thevalidCharacterschar set as valid characters.static CharacterChromosomeof(IntRange lengthRange)Create a new chromosome with theCharacterGene.DEFAULT_CHARACTERSchar set as valid characters.static CharacterChromosomeof(String alleles)Create a new chromosome from the given genes (given as string).static CharacterChromosomeof(String alleles, CharSeq validChars)Create a new chromosome from the given genes (given as string).CharacterChromosomesubSequence(int start, int end)char[]toArray()Returns an char array containing all of the elements in this chromosome in proper sequence.char[]toArray(char[] array)Returns an char array containing all of the elements in this chromosome in proper sequence.StringtoString()-
Methods inherited from class io.jenetics.AbstractChromosome
get, isValid, length
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface io.jenetics.util.BaseSeq
isEmpty, iterator, listIterator, nonEmpty, spliterator, stream
-
Methods inherited from interface java.lang.CharSequence
chars, codePoints, length
-
Methods inherited from interface io.jenetics.Chromosome
as, gene
-
-
-
-
Constructor Detail
-
CharacterChromosome
protected CharacterChromosome(ISeq<CharacterGene> genes, IntRange lengthRange)
Create a new chromosome from the givengenesarray. The genes array is copied, so changes to the given genes array doesn't effect the genes of this chromosome.- Parameters:
genes- the genes that form the chromosome.lengthRange- the allowed length range of the chromosome.- Throws:
NullPointerException- if the given gene array isnull.IllegalArgumentException- if the length of the gene array is smaller than one.- Since:
- 4.0
-
-
Method Detail
-
charAt
public char charAt(int index)
- Specified by:
charAtin interfaceCharSequence
-
subSequence
public CharacterChromosome subSequence(int start, int end)
- Specified by:
subSequencein interfaceCharSequence
-
newInstance
public CharacterChromosome newInstance(ISeq<CharacterGene> genes)
Description copied from interface:ChromosomeA factory method which creates a newChromosomeof specific type and the givengenes.- Specified by:
newInstancein interfaceChromosome<CharacterGene>- Parameters:
genes- the genes of the new chromosome. The given genes array is not copied.- Returns:
- A new
Chromosomeof the same type with the given genes. - Throws:
NullPointerException- if the given gene array isnull.
-
newInstance
public CharacterChromosome newInstance()
Create a new, random chromosome.- Specified by:
newInstancein interfaceFactory<Chromosome<CharacterGene>>- Returns:
- a new instance of type T
-
map
public CharacterChromosome map(Function<? super char[],char[]> f)
Maps the gene alleles of this chromosome, given aschar[]array, by applying the given mapper functionf. The mapped gene values are then wrapped into a newly created chromosome.final CharacterChromosome chromosome = ...; final CharacterChromosome uppercase = chromosome.map(Main::uppercase); static int[] uppercase(final int[] values) { for (int i = 0; i < values.length; ++i) { values[i] = Character.toUpperCase(values[i]); } return values; }- Parameters:
f- the mapper function- Returns:
- a newly created chromosome with the mapped gene values
- Throws:
NullPointerException- if the mapper function isnull.IllegalArgumentException- if the length of the mappedchar[]array is empty or doesn't match with the allowed length range- Since:
- 6.1
-
hashCode
public int hashCode()
-
toString
public String toString()
- Specified by:
toStringin interfaceCharSequence- Overrides:
toStringin classAbstractChromosome<CharacterGene>
-
toArray
public char[] toArray(char[] array)
Returns an char array containing all of the elements in this chromosome in proper sequence. If the chromosome fits in the specified array, it is returned therein. Otherwise, a new array is allocated with the length of this chromosome.- Parameters:
array- the array into which the elements of this chromosomes are to be stored, if it is big enough; otherwise, a new array is allocated for this purpose.- Returns:
- an array containing the elements of this chromosome
- Throws:
NullPointerException- if the givenarrayisnull- Since:
- 3.0
-
toArray
public char[] toArray()
Returns an char array containing all of the elements in this chromosome in proper sequence.- Returns:
- an array containing the elements of this chromosome
- Since:
- 3.0
-
of
public static CharacterChromosome of(CharSeq validCharacters, IntRange lengthRange)
Create a new chromosome with thevalidCharacterschar set as valid characters.- Parameters:
validCharacters- the valid characters for this chromosome.lengthRange- the allowed length range of the chromosome.- Returns:
- a new
CharacterChromosomewith the given parameter - Throws:
NullPointerException- if thevalidCharactersisnull.IllegalArgumentException- if the length of the gene sequence is empty, doesn't match with the allowed length range, the minimum or maximum of the range is smaller or equal zero or the given range size is zero.- Since:
- 4.3
-
of
public static CharacterChromosome of(IntRange lengthRange)
Create a new chromosome with theCharacterGene.DEFAULT_CHARACTERSchar set as valid characters.- Parameters:
lengthRange- the allowed length range of the chromosome.- Returns:
- a new
CharacterChromosomewith the given parameter - Throws:
IllegalArgumentException- if thelengthis smaller than one.
-
of
public static CharacterChromosome of(CharSeq validCharacters, int length)
Create a new chromosome with thevalidCharacterschar set as valid characters.- Parameters:
validCharacters- the valid characters for this chromosome.length- thelengthof the new chromosome.- Returns:
- a new
CharacterChromosomewith the given parameter - Throws:
NullPointerException- if thevalidCharactersisnull.IllegalArgumentException- if the length of the gene sequence is empty, doesn't match with the allowed length range, the minimum or maximum of the range is smaller or equal zero or the given range size is zero.- Since:
- 4.3
-
of
public static CharacterChromosome of(int length)
Create a new chromosome with theCharacterGene.DEFAULT_CHARACTERSchar set as valid characters.- Parameters:
length- thelengthof the new chromosome.- Returns:
- a new
CharacterChromosomewith the given parameter - Throws:
IllegalArgumentException- if thelengthis smaller than one.
-
of
public static CharacterChromosome of(String alleles, CharSeq validChars)
Create a new chromosome from the given genes (given as string).- Parameters:
alleles- the character genes.validChars- the valid characters.- Returns:
- a new
CharacterChromosomewith the given parameter - Throws:
IllegalArgumentException- if the genes string is empty.
-
of
public static CharacterChromosome of(String alleles)
Create a new chromosome from the given genes (given as string).- Parameters:
alleles- the character genes.- Returns:
- a new
CharacterChromosomewith the given parameter - Throws:
IllegalArgumentException- if the genes string is empty.
-
lengthRange
public IntRange lengthRange()
Return the allowed length range of the chromosome. The minimum value of the range is included and the maximum value is excluded.- Returns:
- the allowed length range of the chromosome
-
-