[ALG-3IR JAVA] MAP à 3 éléments ?

Voir le sujet précédent Voir le sujet suivant Aller en bas

[ALG-3IR JAVA] MAP à 3 éléments ?

Message  aleben89 le Mer 09 Jan 2013, 17:43

Bonjour,

j'aimerais savoir s'il existe un type de données qui ressemble à une map mais avec 3 éléments, au lieu de juste clé-valeur.

J'aimerais mettre côte à côte : int - Enum - List <E>. Quel est le type le plus approprié pour faire ceci ?

Ou alors je dois faire une map de map ? map < map <Int, Enum> List<E> > ?

Merci de vos réponses

aleben89

aleben89

Nombre de messages : 108
Age : 27
Prénom : Benjamin
Statut : Etudiant 3ème Réseau
Localisation : Bruxelles ou en province de Luxembourg (perdu en verte campagne entre 2 champs)
Date d'inscription : 27/01/2009

Revenir en haut Aller en bas

Re: [ALG-3IR JAVA] MAP à 3 éléments ?

Message  FûT le Mer 09 Jan 2013, 20:19

aleben89 a écrit:J'aimerais mettre côte à côte : int - Enum - List <E>
C'est pas extrêmement clair: l'Enum est toujours associé au même int qui ensemble définise une List ? Exemple :
Code:
42 => Foo => UneListe
58 => Bar => UneAutreListe
Ou est il possible d'avoir ceci:
Code:
42 => Foo => UneListe
54 => Foo => UneAutreListe
58 => Bar => EncoreUneAutreListe

FûT

Nombre de messages : 118
Age : 26
Prénom : Raphaël
Statut : Etudiant en 3ième indu
Date d'inscription : 10/10/2010

http://ittricks.be

Revenir en haut Aller en bas

Re: [ALG-3IR JAVA] MAP à 3 éléments ?

Message  nvs le Mer 09 Jan 2013, 20:42

comme FûT, je n'ai peut-être pas bien compris la requête.

en c++ : un tuple.

en java, je ne sais pas, mais on en discute ici.

pour ce dont je me souviens, ça (les pair, ancêtres des tuples) n'existe pas en java parce que c'est laid. on conseille en java de développer une classe avec 2, 3, etc. attributs plus les accesseurs etc. pour plus de clarté : les attributs ont un nom plus explicite que first ou second. ceci dit, quand on y a goûté, il y a franchement des cas où les pairs et tuples simplifient grandement la vie !





cherry

_________________

nvs

Nombre de messages : 5238
Age : 44
Prénom : Nicolas
Statut : prof
Localisation : bxl
Date d'inscription : 24/11/2005

http://nvansteenkiste.googlepages.com

Revenir en haut Aller en bas

Re: [ALG-3IR JAVA] MAP à 3 éléments ?

Message  FûT le Mer 09 Jan 2013, 20:52

Oui enfin si Enum défini l'entier, il suffit de rajouter normalement l'entier dans le constructeur privé de l'enum :
Code:
public enum Planet {
    MERCURY (3.303e+23, 2.4397e6),
    VENUS  (4.869e+24, 6.0518e6),
    EARTH  (5.976e+24, 6.37814e6),
    MARS    (6.421e+23, 3.3972e6),
    JUPITER (1.9e+27,  7.1492e7),
    SATURN  (5.688e+26, 6.0268e7),
    URANUS  (8.686e+25, 2.5559e7),
    NEPTUNE (1.024e+26, 2.4746e7);

    private final double mass;  // in kilograms
    private final double radius; // in meters
    Planet(double mass, double radius) {
        this.mass = mass;
        this.radius = radius;
    }
    private double mass() { return mass; }
    private double radius() { return radius; }
}
Source: http://docs.oracle.com/javase/tutorial/java/javaOO/enum.html

FûT

Nombre de messages : 118
Age : 26
Prénom : Raphaël
Statut : Etudiant en 3ième indu
Date d'inscription : 10/10/2010

http://ittricks.be

Revenir en haut Aller en bas

Re: [ALG-3IR JAVA] MAP à 3 éléments ?

Message  aleben89 le Mer 09 Jan 2013, 21:27

mes rapport seraient du style :

1 -> C2 -> listeJoueur
5 -> C4 -> autreListeJoueur
7 -> C6 ->encoreAutreListe

le lien entre le nombre et le classement(C2,C4,C6,...) est aléatoire et calculé dynamiquement à la création de la "map".

J'espère avoir été plus clair

aleben89

Nombre de messages : 108
Age : 27
Prénom : Benjamin
Statut : Etudiant 3ème Réseau
Localisation : Bruxelles ou en province de Luxembourg (perdu en verte campagne entre 2 champs)
Date d'inscription : 27/01/2009

Revenir en haut Aller en bas

Re: [ALG-3IR JAVA] MAP à 3 éléments ?

Message  FûT le Mer 09 Jan 2013, 22:15

J'suis tellement d'humeur généreuse aujourd'hui que je fourni même le code ! En bref; un objet "comparable" : Classement contenant un Type (C2, C4,..) accompagné d'un entier .. Et l'objet se compare avec classement et type dans une map ! Voili voilou Very Happy
Code:

import java.util.*;

public class Classement implements Comparable<Classement> {

   public enum Type {
      C2("Description du classement"),
      C4,
      C6;

      private String desc;

      private Type() {
         this("Aucune description");
      }
      private Type(String desc) {
         this.desc = desc;
      }
      public String getDescription() {
         return this.desc;
      }
   }

   private int num;
   private Type type;

   public Classement(int random, Type type) {
      this.num  = random;
      this.type = type;
   }
   public int getNum() {
      return this.num;
   }
   public Type getType() {
      return this.type;
   }
   public boolean equals(Object o) {
      if (! (o instanceof Classement)) {
         return false;
      }

      return o.hashCode() == this.hashCode();
   }
   public int hashCode() {
      return 31*type.hashCode()+num;
   }
   public int compareTo(Classement c) {
      return this.equals(c) ? 0 : 1;
   }

   public static void main (String [] args) {
      Random rand = new Random();
      HashMap <Classement, List> map = new HashMap <Classement, List>();
      for (int i = 0; i < 5; i++) {
         map.put(
            new Classement(rand.nextInt(10), Classement.Type.C2),
            new ArrayList());
      }

      System.out.println(
         map.containsKey(new Classement(1, Classement.Type.C2)));
   }
}


Dernière édition par FûT le Mer 09 Jan 2013, 22:17, édité 1 fois (Raison : Mauvaise indentation du code.)

FûT

Nombre de messages : 118
Age : 26
Prénom : Raphaël
Statut : Etudiant en 3ième indu
Date d'inscription : 10/10/2010

http://ittricks.be

Revenir en haut Aller en bas

Re: [ALG-3IR JAVA] MAP à 3 éléments ?

Message  Contenu sponsorisé Aujourd'hui à 12:37


Contenu sponsorisé


Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut


 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum