Comment changer de lignes en colonnes dans Il devrait être: p> si c'est impossible avec arraylist, quelles sont les autres options pour stocker des données 2D et changer les lignes en colonnes? p> p> ArrayList
5 Réponses :
Vous pouvez essayer Comme, p> pour obtenir le tri, p> mappe code>.
@Bohemian pour préserver la commande Vous pouvez utiliser LinkedHashMap IPM.
Quelque chose de mal avec sortie: p> int [] [] code>? Ce serait l'approche standard:
Si vous devez utiliser em> utiliser des collections, utilisez comme démarrage: p>
Vous pouvez utiliser deux boucles - quelque chose comme ça devrait fonctionner:
ArrayList<Integer[]> res = ArrayList<Integer[]>(); int C = arr.get(0).length; int R = arr.size(); for (int c = 0 ; c != C ; c++) { int[] row = new Integer[R]; for (int r = 0 ; r != R ; r++) { row[r] = arr.get(R)[c]; } res.add(row); }
ArrayList<Integer[]> arr = new ArrayList<Integer[]>(); arr.add(new Integer[]{1,2,3}); arr.add(new Integer[]{4,5,6}); ArrayList<Integer[]> res = new ArrayList<Integer[]>(); int C = arr.get(0).length; int R = arr.size(); for (int c = 0 ; c != C ; c++) { Integer[] row = new Integer[R]; for (int r = 0 ; r < R ; r++) { row[r] = arr.get(r)[c]; } res.add(row); }
Ce problème s'appelle ' Matrix transpose '. Si vous connaissez le nombre de rangées à l'avance, vous pouvez simplement utiliser la matrice 2D et simplement le transposer, comme ci-dessous: même si vous ne connaissez pas le nombre de lignes ou de colonnes à l'avance, Vous pouvez utiliser d'autres données de données comme ArrayList, puis utiliser la même logique que ci-dessus. p> p>
Pourquoi ne pas utiliser un entier bidimensionnel [] []?