• [^] # Re: Map à la place du swicth/case

    Posté par . En réponse au journal Switch, chaîne constante et c++. Évalué à 3.

    Éventuellement tu peux scoper :

    Ça résous que partiellement, tu n'a pas vraiment de lisibilité sur quels sont les données d'entrée et de sortie de chaque cas.

    Ce pattern n'est pas si mal adapté aux switches :

    int map(char value) {
     switch (value) {
     case 'a': return 12;
     case 'b': return 642;
     case 'r': return 727;
     // ...
     }
    }

    Oui c'est une option (c'est aussi une solution pour ce dont je parle au dessus). Mais vraiment je préfère une construction comme ici (avec guava) :

    public static final Map<String, Integer> myStruc = ImmutableMap.<String, Integer>builder()
     .put("foo", 42)
     .put("bar", 84)
     .build(); // on peut utiliser .of() dans ce cas c'est plus concis

    On peut plus tard imaginer charger ces valeurs depuis un fichier.

    En java en plus dans une Map, tu vas devoir wrapper ces valeurs dans des objets.

    J'avoue ne pas connaître le coût de l'auo(un)boxing. Tu as plus d'info là dessus ? (je sais qu'il y a des systèmes de cache dans la JVM pour certaines valeurs par exemple)

    Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)