Package org.apache.commons.math3.genetics

# Class AbstractListChromosome<T>

java.lang.Object
org.apache.commons.math3.genetics.Chromosome
org.apache.commons.math3.genetics.AbstractListChromosome<T>

Type Parameters:
  `T` - type of the representation list

All Implemented Interfaces:
  `Comparable<Chromosome>`, `Fitness`

Direct Known Subclasses:
  `BinaryChromosome`, `RandomKey`

public abstract class AbstractListChromosome<T> extends Chromosome
Chromosome represented by an immutable list of a fixed length.

Since:
  2.0

## Constructor Summary

Constructors
Constructor
Description
`AbstractListChromosome(List<T> representation)`
Constructor, copying the input representation.
`AbstractListChromosome(List<T> representation, boolean copyList)`
Constructor.
`AbstractListChromosome(T[] representation)`
Constructor, copying the input representation.

## Method Summary

Modifier and Type
Method
Description
`protected abstract void`
`checkValidity(List<T> chromosomeRepresentation)`
Asserts that `representation` can represent a valid chromosome.
`int`
`getLength()`
Returns the length of the chromosome.
`protected List<T>`
`getRepresentation()`
Returns the (immutable) inner representation of the chromosome.
`abstract AbstractListChromosome<T>`
`newFixedLengthChromosome(List<T> chromosomeRepresentation)`
Creates a new instance of the same class as `this` is, with a given `arrayRepresentation`.
`String`
`toString()`

### Methods inherited from class org.apache.commons.math3.genetics.Chromosome

`compareTo, findSameChromosome, getFitness, isSame, searchForFitnessUpdate`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

### Methods inherited from interface org.apache.commons.math3.genetics.Fitness

`fitness`

## Constructor Details

### AbstractListChromosome

public AbstractListChromosome(List<T> representation) throws InvalidRepresentationException
Constructor, copying the input representation.

Parameters:
  `representation` - inner representation of the chromosome
Throws:
  `InvalidRepresentationException` - iff the `representation` can not represent a valid chromosome

### AbstractListChromosome

public AbstractListChromosome(T[] representation) throws InvalidRepresentationException
Constructor, copying the input representation.

Parameters:
  `representation` - inner representation of the chromosome
Throws:
  `InvalidRepresentationException` - iff the `representation` can not represent a valid chromosome

### AbstractListChromosome

public AbstractListChromosome(List<T> representation, boolean copyList)
Constructor.

Parameters:
  `representation` - inner representation of the chromosome
  `copyList` - if `true`, the representation will be copied, otherwise it will be referenced.
Since:
  3.3

## Method Details

### checkValidity

protected abstract void checkValidity(List<T> chromosomeRepresentation) throws InvalidRepresentationException
Asserts that `representation` can represent a valid chromosome.

Parameters:
  `chromosomeRepresentation` - representation of the chromosome
Throws:
  `InvalidRepresentationException` - iff the `representation` can not represent a valid chromosome

### getRepresentation

protected List<T> getRepresentation()
Returns the (immutable) inner representation of the chromosome.

Returns:
  the representation of the chromosome

### getLength

public int getLength()
Returns the length of the chromosome.

Returns:
  the length of the chromosome

### newFixedLengthChromosome

public abstract AbstractListChromosome<T> newFixedLengthChromosome(List<T> chromosomeRepresentation)
Creates a new instance of the same class as `this` is, with a given `arrayRepresentation`. This is needed in crossover and mutation operators, where we need a new instance of the same class, but with different array representation.

Usually, this method just calls a constructor of the class.

Parameters:
  `chromosomeRepresentation` - the inner array representation of the new chromosome.
Returns:
  new instance extended from FixedLengthChromosome with the given arrayRepresentation

### toString

public String toString()

Overrides:
  `toString` in class `Object`