2017-10-15 2 views
0

première fois que j'initialiser un tableau 2D:Comment ajouter des lignes et des colonnes sous forme de liste dans une matrice?

List<List<T>> matrix; // matrix is an 2D array; 
public Table(Class<T> t) {; 
    matrix = new ArrayList<List<T>>(); 
} 

J'ai une méthode addCow et addRow:

public void addRow(int i) { 
    List<T> list = new ArrayList<T>(); 
    for (int j = 0; j < cols(); j++) 
    { 
     list.add(null); 
    } 
    matrix.add(i, list);//add a list of null to the matrix 
} 

public void addCol(int j) { 
    if (rows() == 0) return; 
    for(int i = 0; i < rows(); i++){ 
     matrix.get(i).add(j, null);// HERE IS MY PROBLEMS 
    } 
} 

La sortie est

program output. Donc, mon problème est de savoir comment ajouter une colonne en tant que liste (ou une collection complète) dans la matrice, comme la méthode addRow, en ce moment addCol ajoutait les éléments un par un dans la matrice et j'ai eu l'erreur "Échec de la correction: le nombre de cols dans la table est incorrect après l'ajout d'une nouvelle col." Je pense que le problème est que j'ajoute une colonne en tant qu'éléments un par un pas comme un ensemble.

+2

ce qui est la sortie prévue de votre programme? Pourquoi array' [] [] 'n'est-il pas une structure de données utile pour vous? – nullpointer

+0

quel est le problème réel? Est-ce que le problème est juste "maintenant AddCol ajoutait les éléments un par un dans la matrice" et si c'est le cas, pourquoi? ça ne marche pas? – pirho

Répondre

0

Si vous souhaitez ajouter une collection, utilisez addAll()