Salut,
Il a quelle forme le tableau ?
Une Map, c'est une association clef-valeur, donc transformer un tableau en Map, en gros, c'est parcourir des données du tableau pour déterminer des clefs et des valeurs qu'on va leur associer. Il est donc essentiel de savoir comment déterminer ces clefs et comment déterminer ces valeurs.
On pourrait avoir un simple tableau de 2 colonnes, où dans chaque ligne, on a deux valeurs : une clef et la valeur à associer
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| String[][] array = new String[10][2];
for(int i=0; i<array.length; i++) {
array[i][0]="key"+i;
array[i][1]="val"+i;
}
System.out.println("Tableau : " + Arrays.deepToString(array));
Map<String,String> map = new HashMap<>();
for(int i=0; i<array.length; i++) {
map.put( array[i][0], array[i][1]);
}
System.out.println("Map : " + map); |

Tableau : [[key0, val0], [key1, val1], [key2, val2], [key3, val3], [key4, val4], [key5, val5], [key6, val6], [key7, val7], [key8, val8], [key9, val9]]
Map : {key1=val1, key2=val2, key0=val0, key5=val5, key6=val6, key3=val3, key4=val4, key9=val9, key7=val7, key8=val8}
On peut aussi utiliser un stream :
1 2 3 4
| Map<String,String> map = Arrays.stream(array).collect(Collectors.toMap(
t-> t[0],
t-> t[1]
)); |
Attention, si la première colonne ne contient pas que des valeurs distinctes, ce code va faire perdre des valeurs. C'est une des raisons qui fait que connaître la forme du tableau à transformer est importante.
Et si tu as un code où clef et valeur s'inversent, montre-le nous et on pourra te dire pourquoi.
Partager