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

    Posté par (site web personnel) . En réponse au journal Switch, chaîne constante et c++. Évalué à 3. Dernière modification le 31 août 2016 à 14:59.

    J'avoue ne pas connaître le coût de l'auo(un)boxing.

    Les objets, ça prend de la place. Les HashMaps en particulier :)

    Cf Android Memories à partir de la slide 24.

    (je sais qu'il y a des systèmes de cache dans la JVM pour certaines valeurs par exemple)

    Oui, par exemple l'autoboxing des int utilise un cache pour les valeurs sur 8 bits. Cf l'implémentation de Integer.valueOf(int) (qui est appelé automatiquement pour l'autoboxing).

    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

    Perso je trouve ça très verbeux.

    En C++ c'est plus joli :

     const std::map<char, int> map {
     { 'a', 12 },
     { 'b', 642 },
     { 'r', 727 }
     };

    blog.rom1v.com