Bonjour
Je cherche à savoir s'il existe une classe ou une facon particulière pour renvoyer un couple en fonction d'un couple...
C'est à dire quelque chose comme
f : (x, y) |--> (x', y')
ou T[i][j] = { 28, 53 } .....
Bonjour
Je cherche à savoir s'il existe une classe ou une facon particulière pour renvoyer un couple en fonction d'un couple...
C'est à dire quelque chose comme
f : (x, y) |--> (x', y')
ou T[i][j] = { 28, 53 } .....
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 public T[][] f(x,y) { ... }
Dans le cadre deEnvoyé par yarf
f: (x,y)| --> (x',y')
tu peux encapsuler x et y dans une classe Point ou Coordonne du coup ta fonction (methode) devientune fonction d'un parametre (un objet de type Point) qui retourne un seul objet (la encore de type point)
Quelque chose de ce style (pas testé) ? Sinon comme indiqué les classes Point, Point2D.Float, Point2D.Double et Dimension peuvent aussi servir à stocker des paires numériques.
EDIT - en réfléchissant un peu... un couple en fonction d'un couple ... ca ressemble plus à un projection donc une Map ferait tout à fait l'affaire l'affaire:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 public class Pair <T, V> { public T first; public V second; } Pair<Pair<Integer, Integer>, Pair<Integer, Integer>> f = new Pair<Pair<Integer, Integer>, Pair<Integer, Integer>>(); f.first = new Pair<Integer, Integer>(); f.second = new Pair<Integer, Integer>(); f.first.first = x; f.first.second = y; f.second.first = x'; f.second.second = y';
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 Map<Pair<Integer, Integer>, Pair<Integer, Integer>> map = new HashMap<Pair<Integer, Integer>, Pair<Integer, Integer>>(); Pair<Integer, Integer> key = new Pair<Integer, Integer>(); key.first = x; key.second = y; Pair<Integer, Integer> value = new Pair<Integer, Integer>(); value.first = x'; value.second = y'; map.put(key, value); ... Pair<Integer, Integer> result = map.get(key);
Note : penser à redéfinir la méthode equals() et getHashCode() dans la classe Pair. Sinon utiliser des Points, ... à la place d'une paire.
Merci de penser au tagquand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.
suivez mon blog sur Développez.
Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook
Merci !
Et selon vous laquelle est la plus rapide ?
Ben ca dépend de l'usage que tu veux en faire.
Merci de penser au tagquand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.
suivez mon blog sur Développez.
Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook
Si la transformation f qui permet de passer de (x,y) à (x',y') est affine tu peux toujours utiliser la classe AffineTransform et Point2D pour parvenir très facilement à tes fins.
C'est pour faire un backtracing dans une matrice. Pour chaque case, il faut stoquer quelle case lui a induit sa valeur.
Partager