Package org.nuiton.util
Interface MatrixMap<E>
- All Superinterfaces:
java.lang.Iterable<E>
- All Known Implementing Classes:
MatrixMap.AbstractMatrixMap,MatrixMap.MatrixMapElastic,MatrixMap.MatrixMapFixed,MatrixMap.SubMatrix
public interface MatrixMap<E>
extends java.lang.Iterable<E>
Permet de stocker des informations dans une matrix a N dimension
Si lors de l'ajout on indique une dimension qui n'existe pas encore ou
un element dans une dimension qui n'existe pas, la matrice ajoute
automatiquement les elements manquant pour que l'ajout se passe bien.
MatrixMap permet de stocker les elements avec des cles de n'importe quel type. Les coordonnees utilisant ces objets sont converti en coordonnees numeriques qui est la seul chose que sait gere Matrix. Ces coordonnees numeriques sont alors convertis en coordonnees lineaire pour le stockage dans Vector. On decoupe ainsi les problemes et on minimise le stockage et certain traitement sur les données puisqu'au final toutes les données sont dans une simple liste.
Pour créer une nouvelle matrice, il faut utiliser une des méthodes de
MatrixMap.Factory
- Since:
- 2.2.1
- Author:
- Benjamin Poussin - poussin@codelutin.com
-
Nested Class Summary
Nested Classes Modifier and Type Interface Description static classMatrixMap.AbstractMatrixMap<E>Classe abstraite permettant de facilement implanter les matrice fixe, elastique et submatrixstatic classMatrixMap.FactoryClasse permettant la creation de matricestatic interfaceMatrixMap.MapFunction<E>Permet de faire un traitement sur des valeurs et d'en retourner des nouvelles.static classMatrixMap.Matrix<E>Objet matrice qui ne permet que le stockage avec des positions int dans une matrice a autant de dimension que l'on souhaite.static classMatrixMap.MatrixHelperClasse contenant des méthodes statiques pour aider a la manipulation des matricesstatic classMatrixMap.MatrixIterator<E>static classMatrixMap.MatrixMapElastic<E>Implantation particuliere de matrice, qui lorsqu'on lui passe des dimension qui n'existe pas, elle les ajoutes dans les semantiques.static classMatrixMap.MatrixMapFixed<E>Implantation de MatrixMap dont les dimensions sont fixees a la creation Les dimensions ne change plus par la suitestatic interfaceMatrixMap.MatrixMapIterator<E>Iterateur de matricestatic classMatrixMap.MatrixMapIteratorImpl<E>static classMatrixMap.SemanticList<T>Collection particuliere utilisee pour la stockage des semantiques.static classMatrixMap.SubMatrix<E>Pour l'instant une sous matrice a obligatoirement le meme nombre de dimension que la matrice qu'elle contient.static classMatrixMap.Vector<E>Permet de stocker des données à une position lineaire et de la redemander. -
Method Summary
Modifier and Type Method Description MatrixMap<E>copy()Copy la matrice pour pouvoir la modifier sans perdre les donnees initiales.booleanequals(MatrixMap mat)Verifie que deux matrices sont completement equals (dimension, semantique, nom, valeur, ...)booleanequalsValues(MatrixMap<E> mat)Verifie si les matrices sont egales en ne regardant que les valeurs et pas les semantiquesMatrixMap<E>extend(java.lang.Object... sems)Permet de retourner une nouvelle matrice ayant les semantiques passées en parametre.int[]getDim()intgetDim(int d)intgetDimCount()java.lang.StringgetDimensionName(int dim)java.lang.String[]getDimensionNames()java.lang.StringgetName()MatrixMap.SemanticListgetSemantic(int dim)MatrixMap.SemanticList[]getSemantics()MatrixMap<E>getSubMatrix(int dim, java.lang.Object... elem)Permet de prendre une sous matrice dans la matrice courante.MatrixMap<E>getSubMatrix(int dim, java.lang.Object start, int nb)Permet de prendre une sous matrice dans la matrice courante.MatrixMap<E>getSubMatrix(java.lang.Object[]... elems)Permet de prendre une sous matrice dans la matrice courante.EgetValue(java.lang.Object... coordinates)Retourne l'element a une certaine position en utilisant les semantiquesEgetValueIndex(int... coordinates)Retourne l'element a une certaine position en utilisant des indices ex: 2,3,1booleanisValidCoordinates(java.lang.Object[] semantics)Indique si les semantiques passées en argument sont valable pour la matrice couranteMatrixMap.MatrixMapIterator<E>iterator()MatrixMap<E>map(MatrixMap.MapFunction<E> f)Applique sur chaque element de la matrice la fonction fMatrixMappaste(MatrixMap<E> mat)Copie une matrice dans la matrice actuelle.MatrixMap<E>reduce()Reduit la matrice de sorte que toutes les dimensions qui n'ont qu'un élement soit supprimée.MatrixMap<E>reduce(int minNbDim)Reduit la matrice de sorte que toutes les dimensions qui n'ont qu'un élement soit supprimée.MatrixMap<E>reduceDims(int... dims)Reduit le matrice seulement sur les dimensions passées en argument.voidsetDimensionName(int dim, java.lang.String name)voidsetDimensionNames(java.lang.String[] names)voidsetName(java.lang.String name)voidsetSemantic(int dim, java.util.List sem)voidsetValue(E value, java.lang.Object... coordinates)Modifie l'element a une certaine position en utilisant les semantiquesvoidsetValueIndex(E value, int... coordinates)Modifie l'element a une certaine position en utilisant des indices ex: 2,3,1java.lang.StringtoStringGeneric()Representation string de la matrice quelque soit le nombre de dimension
-
Method Details
-
iterator
MatrixMap.MatrixMapIterator<E> iterator()- Specified by:
iteratorin interfacejava.lang.Iterable<E>
-
copy
Copy la matrice pour pouvoir la modifier sans perdre les donnees initiales.- Returns:
- new matrix
-
getSemantics
MatrixMap.SemanticList[] getSemantics() -
getSemantic
-
setSemantic
void setSemantic(int dim, java.util.List sem) -
setName
void setName(java.lang.String name) -
getName
java.lang.String getName() -
getDimensionNames
java.lang.String[] getDimensionNames() -
setDimensionNames
void setDimensionNames(java.lang.String[] names) -
setDimensionName
void setDimensionName(int dim, java.lang.String name) -
getDimensionName
java.lang.String getDimensionName(int dim) -
getDimCount
int getDimCount() -
getDim
int[] getDim() -
getDim
int getDim(int d) -
map
Applique sur chaque element de la matrice la fonction f- Parameters:
f- la fonction a appliquer- Returns:
- Retourne la matrice elle meme. Les modifications sont faites directement dessus
-
getValueIndex
Retourne l'element a une certaine position en utilisant des indices ex: 2,3,1- Parameters:
coordinates- FIXME- Returns:
- FIXME
-
setValueIndex
Modifie l'element a une certaine position en utilisant des indices ex: 2,3,1- Parameters:
value- la nouvelle valeurcoordinates- FIXME
-
getValue
Retourne l'element a une certaine position en utilisant les semantiques- Parameters:
coordinates- FIXME- Returns:
- FIXME
-
setValue
Modifie l'element a une certaine position en utilisant les semantiques- Parameters:
value- la nouvelle valeurcoordinates- FIXME
-
equals
Verifie que deux matrices sont completement equals (dimension, semantique, nom, valeur, ...)- Parameters:
mat- FIXME- Returns:
- FIXME
-
equalsValues
Verifie si les matrices sont egales en ne regardant que les valeurs et pas les semantiques- Parameters:
mat- FIXME- Returns:
- equality on values
-
toStringGeneric
java.lang.String toStringGeneric()Representation string de la matrice quelque soit le nombre de dimension- Returns:
- FIXME
-
isValidCoordinates
boolean isValidCoordinates(java.lang.Object[] semantics)Indique si les semantiques passées en argument sont valable pour la matrice courante- Parameters:
semantics- FIXME- Returns:
- FIXME
-
paste
Copie une matrice dans la matrice actuelle. La matrice à copier à le même nombre de dimension. Si la matrice à copier est trop grande seul les éléments pouvant être copier le seront.- Parameters:
mat- la matrice à copier- Returns:
- return la matrice courante.
-
getSubMatrix
Permet de prendre une sous matrice dans la matrice courante. La sous matrice a le même nombre de dimensions mais sur une des dimensions on ne prend que certain élément.- Parameters:
dim- la dimension dans lequel on veut une sous matricestart- la position dans dim d'ou il faut partir pour prendre la sous matrice. 0 ≤ start < dim.size si start est négatif alors la position de départ est calculé par rapport à la fin de la dimension, pour avoir le dernier élément il faut passer -1nb- le nombre d'élément à prendre dans la dimension si nb est inférieur ou égal à 0 alors cela indique qu'il faut prendre tous les éléments jusqu'à la fin de la dimension.- Returns:
- new matrix
-
getSubMatrix
Permet de prendre une sous matrice dans la matrice courante. La sous matrice a le même nombre de dimensions mais sur une des dimensions on ne prend que certain élément.- Parameters:
dim- la dimension dans lequel on veut une sous matriceelem- les éléments dans la dimension à conserver- Returns:
- new matrix
-
getSubMatrix
Permet de prendre une sous matrice dans la matrice courante.Réalise plusieurs appels à
getSubMatrix(int, Object...)suivant l'implémentation.- Parameters:
elems- les éléments dans la dimension à conserver- Returns:
- new matrix
-
reduce
Reduit la matrice de sorte que toutes les dimensions qui n'ont qu'un élement soit supprimée. Au pire cette méthode retourne une matrice à une seule dimension à un seul élément.- Returns:
- une nouvelle matrice plus petite que la matrice actuelle ou egal s'il n'y a aucune dimension à supprimer
-
reduceDims
Reduit le matrice seulement sur les dimensions passées en argument. Si une des dimensions passées en arguement n'a pas qu'un seul élément, cette dimension n'est pas prise en compte.- Parameters:
dims- les dimensions sur lequel il faut faire la reduction- Returns:
- une nouvelle matrice
-
reduce
Reduit la matrice de sorte que toutes les dimensions qui n'ont qu'un élement soit supprimée. Au pire cette méthode retourne une matrice à une seule dimension à un seul élément.- Parameters:
minNbDim- le nombre minimum de dimension que l'on souhaite pour la matrice résultat- Returns:
- une nouvelle matrice plus petite que la matrice actuelle ou egal s'il n'y a aucune dimension à supprimer
-
extend
Permet de retourner une nouvelle matrice ayant les semantiques passées en parametre. La nouvelle matrice contient les données de l'ancienne matrice par copie en fonction des semantiques- Parameters:
sems- FIXME- Returns:
- FIXME
-