Interface MatrixMap<E>
- All Superinterfaces:
Iterable<E>
- All Known Implementing Classes:
MatrixMap.AbstractMatrixMap, MatrixMap.MatrixMapElastic, MatrixMap.MatrixMapFixed, MatrixMap.SubMatrix
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 ClassesModifier and TypeInterfaceDescriptionstatic classClasse abstraite permettant de facilement implanter les matrice fixe, elastique et submatrixstatic classClasse permettant la creation de matricestatic interfacePermet de faire un traitement sur des valeurs et d'en retourner des nouvelles.static classObjet matrice qui ne permet que le stockage avec des positions int dans une matrice a autant de dimension que l'on souhaite.static classClasse contenant des méthodes statiques pour aider a la manipulation des matricesstatic classstatic classImplantation particuliere de matrice, qui lorsqu'on lui passe des dimension qui n'existe pas, elle les ajoutes dans les semantiques.static classImplantation de MatrixMap dont les dimensions sont fixees a la creation Les dimensions ne change plus par la suitestatic interfaceIterateur de matricestatic classstatic classCollection particuliere utilisee pour la stockage des semantiques.static classPour l'instant une sous matrice a obligatoirement le meme nombre de dimension que la matrice qu'elle contient.static classPermet de stocker des données à une position lineaire et de la redemander. -
Method Summary
Modifier and TypeMethodDescriptioncopy()Copy la matrice pour pouvoir la modifier sans perdre les donnees initiales.booleanVerifie 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 semantiquesPermet de retourner une nouvelle matrice ayant les semantiques passées en parametre.int[]getDim()intgetDim(int d) intgetDimensionName(int dim) String[]getName()getSemantic(int dim) getSubMatrix(int dim, Object... elem) Permet de prendre une sous matrice dans la matrice courante.getSubMatrix(int dim, Object start, int nb) Permet de prendre une sous matrice dans la matrice courante.getSubMatrix(Object[]... elems) Permet de prendre une sous matrice dans la matrice courante.Retourne l'element a une certaine position en utilisant les semantiquesgetValueIndex(int... coordinates) Retourne l'element a une certaine position en utilisant des indices ex: 2,3,1booleanisValidCoordinates(Object[] semantics) Indique si les semantiques passées en argument sont valable pour la matrice couranteiterator()Applique sur chaque element de la matrice la fonction fCopie une matrice dans la matrice actuelle.reduce()Reduit la matrice de sorte que toutes les dimensions qui n'ont qu'un élement soit supprimée.reduce(int minNbDim) Reduit la matrice de sorte que toutes les dimensions qui n'ont qu'un élement soit supprimée.reduceDims(int... dims) Reduit le matrice seulement sur les dimensions passées en argument.voidsetDimensionName(int dim, String name) voidsetDimensionNames(String[] names) voidvoidsetSemantic(int dim, List sem) voidModifie 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,1Representation string de la matrice quelque soit le nombre de dimensionMethods inherited from interface Iterable
forEach, spliterator
-
Method Details
-
iterator
MatrixMap.MatrixMapIterator<E> iterator() -
copy
-
getSemantics
MatrixMap.SemanticList[] getSemantics() -
getSemantic
-
setSemantic
-
setName
-
getName
String getName() -
getDimensionNames
String[] getDimensionNames() -
setDimensionNames
-
setDimensionName
-
getDimensionName
-
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
-
setValue
-
equals
Verifie que deux matrices sont completement equals (dimension, semantique, nom, valeur, ...)- Parameters:
mat- FIXME- Returns:
- FIXME
-
equalsValues
-
toStringGeneric
String toStringGeneric()Representation string de la matrice quelque soit le nombre de dimension- Returns:
- FIXME
-
isValidCoordinates
Indique si les semantiques passées en argument sont valable pour la matrice courante- Parameters:
semantics- FIXME- Returns:
- FIXME
-
paste
-
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
-