7
votes

Convertir une arrayliste en une matrice 2D

en Java Comment convertissez-vous une arrayliste en un objet de tableau de deux dimensions [] []?

des commentaires: Je vais vous décrire le problème avec plus de détails: un fichier XML comprend une liste de contacts (par exemple le nom, l'adresse ...). La seule façon dont je peux obtenir ces informations est via une arracheliste, qui me sera donnée. Comme je dois stocker le contenu de cette liste de matrices dans une table pivotante Java de manière ordonnée, je pensais la convertir en une éventail en deux dimensions d'objets


4 commentaires

Une liste de matrices est 1D, je ne comprends pas ce que votre question signifie


Peut-être que la arrayliste contient une liste de tableaux d'objets ...


Je vais vous décrire le problème avec plus de détails: un fichier XML inclut une liste de contacts (par exemple le nom, l'adresse ...). La seule façon dont je peux obtenir ces informations est via une arraylist , qui me sera donné. Comme je dois stocker le contenu de cette liste de matrices dans une table de manière ordonnée, je pensais la convertir en une éventail en deux dimensions d'objets ...


Quel genre de table? table de base de données? Swing Jtalable? Table HTML?


8 Réponses :


0
votes

Ce que vous voulez vraiment, c'est de trier le tableau. Pour ce faire, votre classe de contacts doit mettre en œuvre une méthode de comparaison.

Vérifiez la page suivante pour un exemple: http://www.java-examples.com/sort-java-ArrayList-Descending-Order-Unant-comparator-example


0 commentaires

0
votes

Je vous recommanderai d'analyser votre XML dans des objets Java et de stocker l'objet dans un objet de données personnalisé. Cela vous permettra de faire de nombreuses opérations sur les données disponibles.

Ici est petit tutoriel sur la façon de le faire.


0 commentaires

2
votes

Le moyen simple consiste à ajouter une méthode au contact comme ceci: xxx

et utilisez-le comme ceci: xxx < / pré>


0 commentaires

8
votes

Je présume que vous utilisez le JTABLE (objet [] [], objet []) code> constructeur.

au lieu de convertir une arrayliste code> dans un objet [] [] code>, essayez d'utiliser JTABLE (TableModel) Code> constructeur. Vous pouvez écrire une classe personnalisée qui implémente le TableModel code> interface. Sun a déjà fourni le abstracttableemodel CODE> classe pour que vous puissiez étendre votre vie un peu plus facile. p> xxx pré>

plus tard sur ... p>

List<Contact> contacts = ...;
TableModel tableModel = new ContactTableModel(contacts);
JTable table = new JTable(tableModel);


0 commentaires

1
votes

J'ai réussi à trouver "un moyen" de le faire, connaître le nombre d'attributs que chaque contact a (6). Donc, envisager un arraylist listofContacts xxx


0 commentaires

2
votes

Essayez ceci:

ArrayList<Integer> list = new ArrayList<Integer>();
list.add(..);
list.add(..);
list.add(..);
list.add(..);
list.add(..);
list.add(..);
int[][] a = new int[list.size()][list.size()];
    for(int i =0; i < list.size(); i++){
      for(int j =0; j <list.size(); j++){
        a[i][j]= list.get(j +( list.size() * i));
      }
  }


0 commentaires

0
votes
public static String[][] convertListIntoArrayObj(List<TeamMenuSelected> possibilities) {
    int numberOfColums = 2;
    int numberOfRows = possibilities.size();
    String[][] values = new String[numberOfRows][numberOfColums];

    for(int x=0; x<possibilities.size(); x++) {
        TeamMenuSelected item = possibilities.get(x);
        values[x][0] = item.getTeamName();
        values[x][1] = item.getTeamCuisine();
    }

    return values;
}

0 commentaires

0
votes
 ArrayList<String> arrayList = new ArrayList<String>();
    arrayList.add("element_1");
    arrayList.add("element_2");
    arrayList.add("element_3");
    arrayList.add("element_4");
    int k=0;
    int row = 2, col = 2;
    Object[][] objArray = new Object[row][col];
     for(int i = 0 ; i < row; i++) {
         for(int j = 0; j < col; j++) {
                 objArray[i][j] = arrayList.get(k);
                 k++;
                 if(k > arrayList.size()) {
                     break;
                 }
         }
     }
     for(int i = 0 ; i < row; i++) {
         for(int j = 0; j < col; j++) {

             System.out.println("Row no "+i+" col no "+j+" "+objArray[i][j] );
         }
  }
 }

2 commentaires

Donc, ci-dessus est un moyen de convertir votre arraylist en une matrice 2D. Au-dessus, j'ai converti ArrayList en objet 2D. Pour la convertir en une chaîne 2D ou une matrice 2D, remplacez simplement le code ci-dessus avec une chaîne [] [] pour une chaîne 2D et une matrice [] [] pour une matrice 2D.


Vous devriez écrire l'explication dans la réponse elle-même au lieu de l'écrire dans les commentaires.