IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Collection et Stream Java Discussion :

[Collections]Couple en fonction d'un couple


Sujet :

Collection et Stream Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 114
    Par défaut [Collections]Couple en fonction d'un couple
    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 } .....

  2. #2
    Membre émérite

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2002
    Messages : 652
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public T[][] f(x,y) {
       ...
     
    }

  3. #3
    Membre chevronné
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    509
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 509
    Par défaut Re: Couple en fonction d'un couple
    Citation Envoyé par yarf
    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 } .....
    Dans le cadre de
    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)

  4. #4
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 904
    Billets dans le blog
    54
    Par défaut
    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.

    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';
    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
     
    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 tag quand 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

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 114
    Par défaut
    Merci !

    Et selon vous laquelle est la plus rapide ?

  6. #6
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 904
    Billets dans le blog
    54
    Par défaut
    Ben ca dépend de l'usage que tu veux en faire.
    Merci de penser au tag quand 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

  7. #7
    Membre éprouvé
    Inscrit en
    Avril 2003
    Messages
    159
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 159
    Par défaut
    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.

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 114
    Par défaut
    C'est pour faire un backtracing dans une matrice. Pour chaque case, il faut stoquer quelle case lui a induit sa valeur.

Discussions similaires

  1. [AJAX] Json = une collection de couples
    Par michelp3 dans le forum AJAX
    Réponses: 1
    Dernier message: 15/06/2010, 11h18
  2. fonction qui renvoie un couple
    Par deubelte dans le forum C++
    Réponses: 5
    Dernier message: 05/09/2007, 14h10
  3. Réponses: 4
    Dernier message: 28/06/2007, 16h27
  4. Données "aléatoires" en fonction d'un couple X,Y
    Par Harry_polin dans le forum Algorithmes et structures de données
    Réponses: 20
    Dernier message: 05/01/2007, 15h04
  5. [Collection] Regrouper des couples clé/valeur
    Par webspeak dans le forum Collection et Stream
    Réponses: 4
    Dernier message: 22/05/2006, 14h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo