7
votes

Pourquoi Google Collections ne prend-elle pas en charge MulkyMap comme Apache Collections?

est la décision de Google similaire à celle de triéeMultiset (Stackoverflow Question) ou est-ce parce qu'il n'y a pas d'utilisation de multikeyym ?

Je suis conscient qu'un alternatif pour multikymap peut être d'utiliser une classe personnalisée comme clé contenant les touches multiples comme membres de la classe. Au contraire, j'aime le concept de spécification de plusieurs clés lors de l'appel du multikympa .

La version d'Apache de MulkyMap est géniale mais je manque gravement des génériques et j'ai donc examiné les collections Google pour une implémentation moderne. Si quelqu'un a une idée de la raison pour laquelle Google ne l'a pas encore soutenu ou qu'il y a une meilleure alternative pour cela, veuillez répondre.


0 commentaires

3 Réponses :


3
votes

Je pense que les génériques pourraient être le showstopper pour la mise en œuvre ici. Si vous regardez simplement l'interface de la carte, des spécificateurs génériques sont des spécificateurs génériques pour le type de clé (k) et le type de valeur (V). Je ne crois pas qu'il serait possible de le spécifier facilement à l'aide de génériques sans séparer les implémentations en plusieurs classes (une pour chaque nombre de composants clés).

Vous auriez besoin d'une classe pour chacun: p>

MultiKeyMap2<K1,K2,V>
MultiKeyMap3<K1,K2,K3,V>
MultiKeyMap4<K1,K2,K3,K4,V>
MultiKeyMap5<K1,K2,K3,K4,K5,V>


0 commentaires

7
votes

Nous avons une très belle mise en œuvre d'une carte à deux niveaux, que nous appelons une "table" (K1 est la "clé de ligne" et K2 est la "clé de colonne"), et nous ne l'avons tout simplement pas lancé encore. Deux dernières clés, cependant, est une diminution des retours.


4 commentaires

Génial d'avoir un gars officiel de la collection Google répondant :) Puis-je avoir un pic faufilé dans cette structure de données "table"? Et pourquoi ne pas avoir une carte à 3 niveaux et à 4 niveaux?


@ Kevin-Bourrillion a déjà été publié cette carte à 2 niveaux?


Oui, comme la réponse la plus évoluée indique ici. Ma réponse devrait être inacceptée.


Je sais que je suis en retard à la fête, mais pouvez-vous expliquer pourquoi "deux clés passées, cependant, est une diminution des rendements".



11
votes

FYI, la réponse acceptée a été répondue en mars 2010, mais à partir de septembre 2010, GUAVA incluait table .


2 commentaires

Pouvez-vous modifier la réponse acceptée avec les informations mises à jour que vous avez fournies ici?


@Monisiqbal, vous n'êtes pas censé faire ça. Voici un poste parmi beaucoup de méta sur ce sujet . Si vous n'aimez pas la réponse acceptée, indiquez-le. Si vous aimez le mien, upvote, c'est ce que les boutons sont pour. Mais vous ne devriez pas tout à fait contenter - modifier la réponse d'une autre, la fonctionnalité de montage est destinée aux améliorations qui ne changent pas de contenu.