Class MatrixMap.Matrix<E>

java.lang.Object
org.nuiton.util.MatrixMap.Matrix<E>
Type Parameters:
E - FIXME
All Implemented Interfaces:
Iterable<E>
Enclosing interface:
MatrixMap<E>

public static class MatrixMap.Matrix<E> extends Object implements Iterable<E>
Objet matrice qui ne permet que le stockage avec des positions int dans une matrice a autant de dimension que l'on souhaite.
Since:
2.2.1
Author:
Benjamin Poussin - poussin@codelutin.com
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    protected MatrixMap.Vector<E>
    La matrice en représentation linéaire
    protected int[]
    Les dimensions de la matrice
    protected int[]
    tableau de facteur permettant de convertir les coordonnées dans la matrice en un indice dans la représentation linéaire de la matrice
  • Constructor Summary

    Constructors
    Constructor
    Description
    Matrix(int[] dimensions)
    Crée une nouvelle matrice ayant les dimensions demandées.
  • Method Summary

    Modifier and Type
    Method
    Description
    protected void
    checkDim(int dim)
    Permet de vérifier qu'une dimension demandé existe bien dans la matrice
    protected void
    checkDim(int[] dim)
    Permet de vérifier que les dimensions de la nouvelle matrice sont corrects
    protected void
    checkPos(int[] pos)
    Verifie que les coordonnées demandé appartiennent bien à la matrice
    protected int
    coordonatesToLinear(int[] coordonates)
    Permet de convertir les coordonnées d'un élément en un indice dans la représentation linéraire de la matrice.
    boolean
     
    int[]
    Retourne un tableau representant les dimensions de la matrice.
    int
    getDim(int dim)
    Retourne la taille d'une dimension
    int
    Retourne le nombre de dimension de la matrice
    getValue(int[] pos)
    Retourne un element de la matrice
    Retourne un objet Inc pret a etre utilisé pour boucler sur tous les element de la matrice.
    protected int[]
    Convertie une coordonnée lineaire en coordonnées spaciales
    void
    Permet de faire un traitement sur chaque valeur de la matrice
    void
    setValue(int[] pos, E value)
    Modifie un élement de la matrice
     

    Methods inherited from class Object

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

    Methods inherited from interface Iterable

    forEach, spliterator
  • Field Details

    • dimensions

      protected int[] dimensions
      Les dimensions de la matrice
    • data

      protected MatrixMap.Vector<E> data
      La matrice en représentation linéaire
    • linearFactor

      protected int[] linearFactor
      tableau de facteur permettant de convertir les coordonnées dans la matrice en un indice dans la représentation linéaire de la matrice
  • Constructor Details

    • Matrix

      public Matrix(int[] dimensions)
      Crée une nouvelle matrice ayant les dimensions demandées.
      Parameters:
      dimensions - dimensions
  • Method Details

    • getNbDim

      public int getNbDim()
      Retourne le nombre de dimension de la matrice
      Returns:
      le nombre de dimension de la matrice;
    • getDim

      public int getDim(int dim)
      Retourne la taille d'une dimension
      Parameters:
      dim - la dimension dont on souhaite la taille
      Returns:
      la taille d'une dimension
    • getDim

      public int[] getDim()
      Retourne un tableau representant les dimensions de la matrice. Le tableau retourné n'est pas une copie, il ne faut donc pas le modifier
      Returns:
      le tableau des dimensions.
    • getValue

      public E getValue(int[] pos)
      Retourne un element de la matrice
      Parameters:
      pos - la position de l'element à retourner
      Returns:
      un element de la matrice
    • setValue

      public void setValue(int[] pos, E value)
      Modifie un élement de la matrice
      Parameters:
      pos - la position de l'element à modifier
      value - la nouvelle valeur à mettre dans la matrice
    • iterator

      public MatrixMap.MatrixIterator<E> iterator()
      Retourne un objet Inc pret a etre utilisé pour boucler sur tous les element de la matrice.
      Specified by:
      iterator in interface Iterable<E>
      Returns:
      un objet Inc pret à être utilisé
    • map

      public void map(MatrixMap.MapFunction f)
      Permet de faire un traitement sur chaque valeur de la matrice
      Parameters:
      f - la fonction a appliquer à chaque élement de la matrice
    • coordonatesToLinear

      protected int coordonatesToLinear(int[] coordonates)
      Permet de convertir les coordonnées d'un élément en un indice dans la représentation linéraire de la matrice.
      Parameters:
      coordonates - les coordonnées à lineariser
      Returns:
      un indice réprésentant les coordonnées de façon linéaire
    • linearToCoordinates

      protected int[] linearToCoordinates(int pos)
      Convertie une coordonnée lineaire en coordonnées spaciales
      Parameters:
      pos - la coordonnée linéaire
      Returns:
      les coordonnées spaciales de l'élément
    • checkDim

      protected void checkDim(int[] dim)
      Permet de vérifier que les dimensions de la nouvelle matrice sont corrects
      Parameters:
      dim - les dimensions de la nouvelle matrice
      Throws:
      IllegalArgumentException - si une dimension n'est pas valide
    • checkDim

      protected void checkDim(int dim)
      Permet de vérifier qu'une dimension demandé existe bien dans la matrice
      Parameters:
      dim - la position de la dimension que l'on souhaite
      Throws:
      IndexOutOfBoundsException - si la dimension demandée n'existe pas
    • checkPos

      protected void checkPos(int[] pos)
      Verifie que les coordonnées demandé appartiennent bien à la matrice
      Parameters:
      pos - les coordonnées souhaitées dans la matrice
      Throws:
      NoSuchElementException - si les coordonnées ne correspondent pas à un élement de la matrice
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • equals

      public boolean equals(Object o)
      Overrides:
      equals in class Object