2010-03-20 7 views
3

Comment créer, disons, 30 tableaux (peu importe le type, disons, char [])? Il me semble que ce n'est pas une bonne idée de les créer un par un à la main. Je veux faire cela en utilisant un cycle "pour", mais comment dois-je spécifier les identifiants?Création de beaucoup de tableaux

Répondre

2

Vous pouvez toujours créer des tableaux de tableaux:

char[][] arr = new char[30][]; 
for (int i=0; i<30; i++) { 
    arr[i] = new char[50]; 
} 
7

Je recommande la lecture du tutorial on arrays. Il couvre la manipulation de base des tableaux, y compris la création de tableaux "multidimensionnels".

char[][] arr = new char[30][100]; 

Maintenant vous avez arr[0], arr[1], ..., arr[29], dont chacun est un tableau de 100 char.


Cet extrait montre un exemple d'initialisation du tableau et comment y accéder:

int[][] m = { 
    { 1, 2, 3 }, 
    { 4, 5, 6, 7, 8 }, 
    { 9 } 
    }; 
    System.out.println(m[1][3]); // prints "7" 

    m[2] = new int[] { -1, -2, -3 }; 
    System.out.println(m[2][1]); // prints "-2"; 

Cela montre aussi que Java ne dispose pas de véritables tableaux multidimensionnels; m est vraiment un tableau de tableaux. Cela signifie qu'ils peuvent avoir des longueurs différentes (tableaux "dentelés"), et peuvent être manipulés indépendamment les uns des autres. Vous devez également vous familiariser avec java.util.Arrays. Il fournit des méthodes utilitaires pour la manipulation de base des tableaux (conversion en chaîne, copie, tri, recherche binaire, etc.).

import java.util.Arrays; 

    // ... 

    int[][] table = new int[3][]; 
    for (int i = 0; i < table.length; i++) { 
     table[i] = new int[i + 1]; 
     for (int j = 0; j < table[i].length; j++) { 
      table[i][j] = (i * 10) + j; 
     } 
    } 
    System.out.println(Arrays.deepToString(table)); 
    // prints "[[0], [10, 11], [20, 21, 22]]" 
0

Je pense que la meilleure façon de le faire est d'utiliser un ArrayList

vous pouvez mettre autant d'articles que vous voulez dans ce:

java.util.ArrayList<char[]> array = new java.util.ArrayList<char[]>(); 
//set 
for(int i=0;i<100;i++){ 
    array.add(new char[]{'a','b''c'}); 
} 
//get 
for(int i=0;i<array.size();i++){ 
    System.out.println(new String(array.get(i))); 
} 
Questions connexes