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
  Version:
    $Id: AbstractListChromosome.java 1244107 2012-02-14 16:17:55Z erans $

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `AbstractListChromosome(List<T> representation)` Constructor.
    `AbstractListChromosome(T[] representation)` Constructor.

  - ### Method Summary

    Methods
    Modifier and Type | Method and 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 Detail

    - #### AbstractListChromosome

          public AbstractListChromosome(List<T> representation)

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

    - #### AbstractListChromosome

          public AbstractListChromosome(T[] representation)

      Constructor.
      Parameters:
        `representation` - inner representation of the chromosome

  - ### Method Detail

    - #### 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`

Copyright © 2003-2012 The Apache Software Foundation. All Rights Reserved.