2016-11-26 1 views
0

J'ai donc ce code:Le tableau multidimensionnel dans la liste liée ne fonctionne pas?

public static void main (String[] args) throws IOException 
{ 
    Queue popcorn = new LinkedList(); 
    BufferedReader in = null; 
    int j = 0; 
    try { 
     File file2 = new File("Events.txt"); 
     in = new BufferedReader(new FileReader(file2)); 

     String str; 
     String [][] process = new String[][]; 
     while ((str = in.readLine()) != null) { 
      String[] arr = str.split(" "); 
      for(int i=0 ; i<str.length() ; i++){ 
      process[j][i] = in.readLine(); 
     } 
      j++; 
     } 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } finally { 
     try { 
      in.close(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
    } 

} 

Il ne fonctionne pas. Il lance « variable doit fournir soit des expressions de dimension ou un tableau initialiseur »

Je suis en train de ce modèle après cette réponse d'une page Web « http://www.chegg.com/homework-help/questions-and-answers/hired-biggy-s-popcorn-handle-popcorn-orders-store-write-java-console-application-reads-dat-q7220573 » qui je suis sûr ne fonctionne pas. Quoi qu'il en soit, cette liste ne semble pas fonctionner. Est-ce que quelqu'un peut me diriger dans la bonne direction en ce qui concerne ma déclaration de chaîne de caractères [] []?

+0

'new String [] []' - il est impossible de créer * * un tableau sans, qui est ce que le message dit. Ceci est séparé de la déclaration de variable. Rechercher des messages d'erreur pour des conseils généraux. – user2864740

+0

Vous devez indiquer la taille du tableau. Lire http://www.java67.com/2014/10/how-to-create-and-initialize-two-dimensional-array-java-example.html – Rohan

Répondre

3

Vous ne pouvez pas initialiser un tableau sans paramètres de dimension. Par exemple, ce n'est pas valable:

int[] array = new int[]; 

Il doit être initialisé comme ceci:

int[] array = new int[10]; 

Ou simplement:

int[] array; 
// ... // 
array = new int[10]; 

C'est la même chose avec des tableaux multidimensionnels. Pour un tableau contenant 3 tableaux de taille 5, vous mettriez:

int[][] array = new int[3][5]; 

Cependant, avec des tableaux 2D, vous pouvez mettre:

int[][] array = new int[3][]; 
array[0] = new int[5]; 
array[1] = new int[7]; 
// ... // 

Le point est, vous devez définir le nombre Les autres tableaux seront dans votre tableau de base, et peuvent également éventuellement définir la taille de tous les tableaux ou simplement les ajouter plus tard. Dans ce cas, vous devrez changer

String [][] process = new String[][]; 

à quelque chose comme

String [][] process = new String[x][y]; 
+0

Très bien! Donc, je vais utiliser String [] [] process = new String [15] []; au lieu de cela? – user7212219

+0

Oui, mais gardez à l'esprit que vous devrez remplir le tableau de base avec d'autres tableaux si vous voulez utiliser la ligne 'process [j] [i] = in.readLine();', qui pourrait être fait en définissant 'process [j] = arr;'. –