2010-10-02 4 views
0

J'ai ce code:Java: Change String [] [] Dynamiquement

newArray = new String[][]{{"Me","123"},{"You","321"},{"He","221"}}; 

Et je veux le faire dynamiquement. Ajoutez plus d'éléments, des choses comme ça.

Comment faire?

PS: Sans utiliser Vector, en utilisant simplement String[][];

+0

Il me semble que la personne qui a posté cela doit avoir commencé la programmation avec un langage qui a construit dans des tableaux dynamiques comme python. La réponse de Tangens est parfaite. Il existe de nombreux types de collections permettant des modifications dynamiques. –

+0

Je recommanderais qu'il en apprenne un peu plus sur les médicaments génériques, peut-être. Si je venais de python à Java (au lieu de vice versa) les génériques sembleraient vraiment bizarre au début. – krs1

Répondre

8

Vous ne pouvez pas modifier la taille d'un tableau. Vous devez créer un nouveau tableau et copier tout le contenu de l'ancien tableau vers le nouveau tableau.

C'est pourquoi il est beaucoup plus facile d'utiliser les classes de collection java comme ArrayList, HashSet ...

0

Vous ne pouvez pas modifier la taille des tableaux. Je pense que vous avez quelques options:

  1. utiliser un List<List<String>> pour stocker une liste de listes de chaînes
  2. utiliser un Map<String,String> si vous stockez une paire clé/valeur

Vector tend à ne pas être utilisé ces jours-ci, btw. Un Vector est synchronisé à chaque appel de méthode, et donc il y a un impact sur les performances (négligeable de nos jours avec les VM modernes)

0

Java n'a pas la possibilité de redimensionner des tableaux comme d'autres langages.

Mais
Vous ne verrez pas la différence entre un tableau de chaînes et un ArrayList<String> (javadoc) à moins que vous spécifiquement obligé de le faire (comme dans les devoirs)

Il y a plusieurs façons où vous pouvez déclarer un tableau énorme de sorte que vous n'avez pas manquer de l'espace mais je recommanderais fortement ArrayList pour si vous avez besoin de changements dynamiques à la taille. Et ArrayList fournit des possibilités qui ne sont pas (directement) possibles avec un tableau, en bonus.

0

Vous pouvez vous en sortir en utilisant les tableaux s'il est possible de calculer la taille des tableaux avant de les utiliser. Dans votre exemple, il semble que nous ayons besoin de connaître la taille du premier tableau uniquement. Vous pouvez donc imposer une limite au nombre d'enregistrements pouvant être sauvegardés, ou vous pouvez demander à l'utilisateur de savoir combien d'enregistrements il doit sauvegarder ou quelque chose de similaire.

Mais encore une fois, il est plus facile d'utiliser les collections.