449 votes

Une collection de paires valeur de Java ? (tuples) ?

J'aime la façon dont Java a une Carte où vous pouvez définir le type de chaque entrée de la carte, par exemple, <String, Integer>.

Ce que je suis à la recherche d'un type de collection où chaque élément de la collection est une paire de valeurs. Chaque valeur de la paire peut avoir son propre type (comme le String et Integer exemple ci-dessus), qui est définie au moment de la déclaration.

La collection permet de maintenir sa commande et ne sera pas traiter une des valeurs d'une clé unique (comme dans une carte).

Essentiellement, je veux être en mesure de définir un TABLEAU de type <String,Integer> ou toutes les 2 autres types.

Je me rends compte que je peux faire une classe avec rien, mais les 2 variables, mais qui semble trop verbeux.

Je me rends compte que je pouvais utiliser un tableau 2D, mais en raison des différents types dont j'ai besoin, je dois faire des tableaux de OBJET, et puis j'aurais à le casting de tous les temps.

J'ai seulement besoin de stocker des paires de la collection, de sorte que je n'ai besoin de deux valeurs par entrée. Fait quelque chose comme cela, sans passer par les classe de route? Merci!

355voto

JavaHelp4u Points 509
<h2>AbstractMap.SimpleEntry<p>Vous cherchez facile pour cela :</p><pre><code></code></pre><p>Comment est-ce que vous pouvez remplir il ?</p><pre><code></code></pre><p>elle pourra être qu'utile à d’autres</p><p>Voici une bibliothèque personnalisée qui fait une chose similaire : <a href="http://youtu.be/ROmwAnN_IXM">http://youtu.be/ROmwAnN_IXM</a></p><hr><p><a href="http://javahelp.redsaltillo.net">http://JavaHelp.redsaltillo.net</a></p></h2>

284voto

Paul Brinkley Points 2664

La classe Pair est l’un de ces exemples génériques « gimme » assez faciles d’écrire sur votre propre. Par exemple, sur le dessus de ma tête :

Et oui, cela existe à plusieurs endroits sur le Net, avec divers degrés d’exhaustivité et de fonctionnalité. (Mon exemple précédent est destiné à être immuable.)

75voto

Johannes Weiß Points 19013

Le bâti en AbstractMap.SimpleEntry ou AbstractMap.SimpleImmutableEntry classes sont une option, trop.

EDIT : supprimé non-sens sur effacement de type.

33voto

changed Points 700

Apache lang3 communes a la classe Pair et quelques autres bibliothèques citées dans ce fil quel est l’équivalent de la paire de C++ à Java  ?

10voto

Dan Dyer Points 30082

Vous pouvez écrire une classe paire générique et l’utiliser dans une matrice ou une liste. Oui, vous devez écrire une classe, mais vous pouvez réutiliser la même classe pour tous les types, donc vous n’avez plus à faire une fois.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X