2D tableau dynamique à l'aide de liste de tableaux en Java
J'ai besoin de mettre en œuvre un 2D tableau dynamique. Le nombre de lignes est fixe, disons n. Mais le nombre de colonnes pour chaque ligne n'est pas fixe et équivalent. Par exemple, la première ligne a 3 éléments et la deuxième ligne a 5 éléments. Comment faire en Java à l'aide de Arraylist. Merci.
- Dans votre exemple - la première ligne de toujours avoir 3 éléments? Si oui, pourquoi ne pas vous suffit de créer un (par exemple)
Something[][] s = new Something[numRows][]
et s[0] = new Something[3]
?OriginalL'auteur user288609 | 2011-06-03
Vous devez vous connecter pour publier un commentaire.
Comment sur
List<List<Foo>>
?Par Exemple:
List
est uninterface
,ArrayList
est sa mise en œuvre spécifique. eh bien, si vous avezList<Foo>
alors vous pouvez vous référer à unLinkedList
ou une autre œuvre,OriginalL'auteur Jigar Joshi
2dlist
n'est pas valide Java identificateur. 🙂Hopp, où ne voir que l'identifiant? 😉 merci pour la correction 🙂
OriginalL'auteur MarioP
Vous pouvez soit utiliser un tableau pour les lignes depuis cette dimenstion est fixe:
ou imbriquer ArrayLists:
Non, il n'est pas interdit! Vous pouvez très bien créer des tableaux de type paramétré et vous pouvez tester mon code. Il compile et fonctionne comme prévu.
eh bien, je ne pourrais pas le faire. ce que l' %@§$ je fais mal? o.O
Oups, désolé, vous avez raison, j'ai eu une erreur dans mon code et le casting peut être omis. J'ai maintenant résolu et il va compiler maintenant.
aaah oui, nous y voilà. ne voir qu'avant. puis-je supposer que c'est typesafe, considerung la variable réelle n'est pas un raw type?
OriginalL'auteur x4u
Essayer:
Accusé de réception. Modifié réponse.
Correction: vous avec
@SuppressWarnings("unchecked")
, mais vous êtes découragé.code ciselée? ne pouvais pas faire ce travail...
Mais comment faire pour ajouter des entrées pour chaque liste de tableaux représentant une ligne? Merci
OriginalL'auteur Ted Hopp
Vous pouvez créer un tableau d'éléments de liste de tableaux parce que votre nombre de lignes est fixe.
Remarque: Vous aurez besoin d'allouer un objet ArrayList dans chaque entrée dans le tableau. Alors...
OU si vous souhaitez à la fois les lignes et les colonnes pour être dynamique, vous pouvez créer une liste de tableaux de ArrayLists....
Une fois de plus, vous aurez besoin de créer un tableau de liste dans chaque nouvelle entrée à dynamicArray.
OriginalL'auteur Matt Razza
si le nombre de lignes est résolu, essayez quelque chose comme ceci:
Besoin
@SuppressWarnings("unchecked")
pour que cela fonctionne toujours.Putain Java génériques... Puis
ArrayList[] = new ArrayList[fixedRows]
. Sucer Java.maintenant, il demande une ClassCastException ^^
il est en effet gênant, j'ai renoncé et a changé pour tous les génériques quand j'ai des cas comme ça, les frais généraux sont assez négligeable de toute façon.
OriginalL'auteur erickzetta
Utiliser comme:
OriginalL'auteur trutheality
Je voudrais créer un tableau de ArrayList (ArrayList[3] lignes = new ArrayList[3] si les lignes étaient 3) Ensuite, pour chaque ligne, créer de la colonne de classes et de les insérer dans un ArrayList. et puis lieu de la liste de tableaux dans le Tableau. la ligne du tableau d'index peut être utilisé pour garder une trace du numéro de ligne. Rappelez-vous les tableaux de commencer par là des indices à 0 de sorte que le numéro de ligne seraient des lignes[index+1]
OriginalL'auteur Doug
Comme vous le dites, vous pouvez faire un tableau de arraylists et utiliser la liste de tableaux(int capacité initiale) constructeur pour définir la capacité de chaque colonne:
ClassCastException
.bonne prise--merci pour la correction! le code ci-dessus a été corrigé.
maintenant, il ne compile pas ^^
Clairement, j'ai besoin de rafraîchir mon ArrayLists. ^^
OriginalL'auteur CodeRedd