0
votes

Java itérez sur une carte avec simple

J'ai un Treemap avec 3 entrées, du type suivant: xxx

Je peuplique la carte avec le code suivant: xxx > Cela fonctionne comme prévu.

Mon problème est comment récupérer les valeurs individuelles forment le triemap trié.

édité: xxx

ceci imprime les valeurs correctes Pour la clé, comme: xxx

mais je reçois les mauvaises valeurs de valeur ValueKey et ValueValue, comme: xxx

Au lieu de: xxx

Qu'est-ce que je me trompe?


0 commentaires

3 Réponses :


4
votes

map.keystet () (sans surprise) renvoie les clés , pas les valeurs .

Pour obtenir les valeurs . , utilisez (à nouveau, sans surprise) carte.values ​​() .

à itérer sur toutes les paires de clé / valeur, c'est-à-dire les entrées : xxx


Il s'agit d'un moyen inhabituel d'approcher tout problème que vous essayez de résoudre, car chaque clé n'a qu'une seule valeur, de sorte que vous avez "la clé - > Touche -> Valeur ", qui est identique à" KeyKey -> valeur ". Pensez à dispenser avec la carte de la couche externe et en utilisant juste mappe et / ou en utilisant des classes avec des champs (nommés) pour stocker vos données.


1 commentaires

Merci pour votre aide, mais j'aurais peut-être été un peu pressé d'accepter la réponse. Jouer avec le code, j'ai noté quelque chose d'impair: les valeurs d'impression ne sont pas comme prévu. Il ne semble y avoir aucune méthode comme GetValue (). Getkey () et veuillez jeter un coup d'œil à mon poste édité.



0
votes

Premier, prenez la réponse de @ Bohemian, c'est ce que vous voulez. et des futurs Googles. Cela ne fonctionne pas car vous avez un bogue: D (c'est pourquoi nous venons tous de pile sur le débordement, en fonction de votre définition du bogue)

SimpleTry SimpleTyRy = Nouveau Simple SimpleRy ("", "");

...

ActionMap.put (Stringkey, SimpleDeRY entrée );

Est-ce que cela aide?


4 commentaires

Pas vraiment :-), j'ai besoin de trois valeurs imprimables individuelles, stringone, stringtwo, strigtthree ...


sûr, une seconde


En fait, @bohemian a mis le code dans j'allais. ;) avoir un sens ou avoir besoin de plus d'une explication sur la réponse de Bohemian?


J'ai édité ma question. Il y a quelques problèmes avec les valeurs imprimées de la simplicité. Voulez-vous avoir un look?



0
votes

Je ne comprends pas votre question ...

Mais comment puis-je obtenir les deuxième et troisième valeurs de la carte, celles définies par la simplicité? P> BlockQuote>

Étant donné que ce n'est pas clair exactement ce que vous recherchez (ce que vous n'êtes probablement pas en mesure de trouver une réponse) Voici quelques moyens (mais pas tous) de itérer sur une carte: xxx pré>

Si vous utilisez Java 8 ou version ultérieure ... P>

// Using your original map
Map<String, Entry<String, String>> treeMap = new TreeMap<>();
treeMap.forEach((key, value) ->
{
  // key is a String, value is an Entry<String, String>>
});

// Explicit parameter types can increase code readability
treeMap.forEach((String key, Entry<String, String>> value) ->
{
  // Have fun with the contents of your map!
});


1 commentaires

J'ai édité ma question pour le rendre plus précis ce que je veux réaliser. J'ai 3 valeurs sur ma carte. Il y a quelques problèmes avec les valeurs imprimées de la simplicité. Voulez-vous avoir un look?