0
votes

Comment économiser des entiers de la carte à l'aide de la boucle

J'ai une question à vous, j'essaie d'enregistrer des entiers de la carte à un tableau en utilisant une boucle. Cet exemple ci-dessous ne fonctionne pas comme je le voulais, car lorsque j'affiche ce tableau d'INT, il n'a que "2" pour 10 éléments, mais je voulais obtenir [1,2,0,0,0,0,0 ...], Ce qui devrait être changé dans ce code? XXX


2 commentaires

Vous en boucle autour de toutes les entrées (1 -> AB et 2 -> BBA), imprimez la clé (1 et 2), puis écrivez cette touche à chaque index d'un tableau qui n'est jamais lu. Qu'est-ce qui vous confondre à ce sujet?


Pour chaque élément de la carte, vous êtes itération sur l'ensemble de la matrice et définissez chaque index en la valeur.


3 Réponses :


1
votes

Dans chaque itération de la boucle, vous écrasez l'ensemble de la matrice. Vous pouvez plutôt enregistrer l'index de la matrice en dehors de la boucle et l'utiliser pour mettre à jour le tableau:

int index = 0;
for (Integer val: fooMap.keySet()) {
    arrayOfIntegers[index] = val;
    ++index;
}


1 commentaires

Merci d'avoir expliqué cela cela à moi.



0
votes

Vous pouvez utiliser des flux: xxx


0 commentaires

0
votes
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;

public class stack1 {
 public static void main(String[] args) {
     Map<Integer, String> fooMap = new HashMap<>();
     fooMap.put(1, "AB");
     fooMap.put(2, "BBA");

     int memoryAllocated = 10;
     int[] arrayOfIntegers = new int[memoryAllocated];
     int pos =0;

     for (Map.Entry<Integer, String> values : fooMap.entrySet()) {
         int val = values.getKey();
         arrayOfIntegers[pos]=val;
         pos =pos+1;
     }

     while(pos < memoryAllocated){
         arrayOfIntegers[pos]=0;
         pos = pos+1;
     }

     System.out.println("Arrays : "+Arrays.toString(arrayOfIntegers));
}
}

0 commentaires