Faire un Arbre à partir de la Liste du Tableau (ResultSet par exemple)
J'ai une Liste de Tableaux, comme celui-ci:
List<String[]> myList = new ArrayList<String[]>();
myList.add( new String[]{"A1","B1","C1","D1","values"} );
myList.add( new String[]{"A1","B1","C2","D1","values"} );
myList.add( new String[]{"A1","B1","C2","D2","values"} );
myList.add( new String[]{"A2","B1","C1","D1","values"} );
myList.add( new String[]{"A2","B1","C1","D2","values"} );
J'ai besoin de remplir Un Objet qui ont des dépendances avec les pères, donc:
- A1 ont qu'un seul enfant, B1.
- B1 avons 2 enfants, C1 et C2.
- C1 ont 1 enfant, D1, qui ont les valeurs...
- C2 avons 2 enfants, D1 et D2, qui ont les valeurs...
- B1 avons 2 enfants, C1 et C2.
- A2 ont qu'un seul enfant, B1 (Pas le même que l'autre)
- B1 ont qu'un seul enfant, C1... etc.
Ce genre de structure pensez-vous est le meilleur? J'ai besoin des noms A1, B1, etc.
J'ai de la sonde avec des Cartes, des Tableaux, des Listes... je pense que l'algorithme n'est pas possible... 🙁 🙁
S'il vous plaît, à l'AIDE!
Modifier expliquant:
J'ai un jeu de résultats à partir d'une Base de données qui ont 5 ou 6 les clauses GROUP BY. J'ai toute la plaine de données et
J'ai besoin de faire une structure avec des Objets de Texte, par exemple:
Person A - Building 1 - Tower 1 - Some Text A
Person A - Building 1 - Tower 2 - Another Text
Person A - Building 2 - Tower 1 - Another one Text
Person A - Building 2 - Tower 3 - My Text
Person B - Building 1 - Tower 2 - Any Text
Person B - Building 3 - Tower 1 - A Text...
J'ai besoin d'un Objet, de structure de données... Est-il possible?
Ressemble vous avez besoin d'un trie la structure de données. Il y a obtenu d'être un standard de Java mise en œuvre.
OriginalL'auteur ganzux | 2011-05-25
Vous devez vous connecter pour publier un commentaire.
JE L'AI FAIT ! OH MON DIEU! 😀 😀 😀 😀 😀 😀 :D...
OriginalL'auteur ganzux
Il est bien sûr possible. 🙂
Je pense que ce que vous décrivez peut être résolu par un générique ou n-ary de l'arbre. C'est un arbre où chaque nœud peut avoir n'importe quel nombre d'enfants. Je écrit quelque chose qui ne ce en Java.
Si vous ne voulez pas construire un arbre peut générer l'utilisation d'un
Map<String, Set<String>>
. Ce n'est pas vraiment vous donner un accès facile à l'arbre d'opérations, mais il faut maintenir les relations:Alors vous essentiellement à obtenir (je suis en utilisant JSON à démontrer):
C'est beaucoup plus difficile à traverser cependant, qu'un arbre.
Wow, elle a l'air super mais... la fonction musnt être récursive?
Vous pouvez parcourir un arbre de manière itérative ou récursive. De manière récursive semble plus facile pour moi. Un processus itératif de la traversée nécessite un secondaire de la structure de données (nœud de la pile).
Ok, ton code fonctionne, MAIS les enfants sont les mêmes... Par exemple, avec A1 j'ai B1 et j'ai le MÊME B1 A2, et bien que le nom est le même, ce sont des Objets différents... Par exemple, si je l'appelle "D1" - je obtenir des "valeurs", mais je ne sais pas quelles valeurs sont... Sont de A1-B1-C1...
Je crois que le problème est qu'il n'est pas clair ce que vos données sont censés représenter. J'ai essayé d'en déduire une arborescence de ce que vous avez posté votre question. Qu'est-ce que les "valeurs" que voulait dire? Aussi, que voulez-vous dire que les enfants sont les mêmes?
OriginalL'auteur Vivin Paliath
Si vous voulez construire une arborescence à partir de cette liste spécifique de la représentation de l'arbre.
Comme pour toute structure de l'arbre, les nœuds peuvent avoir de 0 à n enfants, afin que les enfants puissent trivialement être stockés dans un
List
(ou éventuellement unMap
, si vous voulez rapide de recherche de nom). Pour cette tâche, le stockage, le parent de référence ne me semble pas nécessaire.Ensuite vous avez juste besoin de parcourir
myList
. Pour chaque élément du tableau,OriginalL'auteur Péter Török