Vous pouvez utiliser un HashMap où la clé contient la position X et Y. Si vous ne voulez pas implémenter une nouvelle classe pour la clé de votre carte, vous pouvez simplement utiliser une chaîne de la forme "X_Y" où X est l'index dans la première dimension et Y est l'index dans la seconde.
Map<String, YourClass> map = new HashMap<>();
Pour mettre un élément à la position 2345, 6789, vous feriez ceci:
map.put(2345 + "_" + 6789, yourObject);
Et pour le récupérer:
YourClass yourObject = map.get(2345 + "_" + 6789);
Pourquoi choisir cette méthode plus en utilisant une sorte de Tuple? Je pense que la réponse courte est que Java ne vient pas avec une classe Tuple ou Pair. Vous pouvez écrire les vôtres et ajouter vos propres implémentations hashCode() et equals() ou vous pouvez utiliser quelque chose comme Map.Entry<K, V>
. Que vous choisissiez une chaîne pour votre clé ou une classe pour votre clé ne fera aucune différence significative au temps d'exécution. Vous perdez une certaine sécurité de type en utilisant une chaîne et vous compensez cela avec une brièveté de code.
Que diriez-vous d'une carte dont la clé est un POJO avec une paire d'indices? (Cela ne sera peut-être pas mieux si vous devez retourner des lignes entières, mais si tout ce que vous faites est d'accéder à des éléments individuels, cela devrait fonctionner correctement.) – ajb
cela? https://stackoverflow.com/questions/45829943/how-to-e-ly-store-small-byte-arrays-in-java Je pense que tout récemment cela a été discuté – Eugene
Si vous ne voulez pas implémenter une nouvelle classe pour le clé de votre carte, vous pouvez simplement utiliser une chaîne de la forme "A_B" où A est l'index dans la première dimension et B est l'index dans la seconde. – bhspencer