Non, vous ne pouvez pas modifier la taille d'un tableau une fois créé. Vous devez soit l'allouer plus grand que ce dont vous pensez avoir besoin, soit accepter de devoir le réallouer si sa taille augmente. Lorsque ce sera le cas, vous devrez en allouer un nouveau et copier les données de l'ancien vers le nouveau :
int[] oldItems = new int[10];
for (int i = 0; i < 10; i++) {
oldItems[i] = i + 10;
}
int[] newItems = new int[20];
System.arraycopy(oldItems, 0, newItems, 0, 10);
oldItems = newItems;
Si vous vous trouvez dans cette situation, je vous recommande vivement d'utiliser plutôt les Collections Java. En particulier ArrayList
enveloppe essentiellement un tableau et s'occupe de la logique de croissance du tableau selon les besoins :
List<XClass> myclass = new ArrayList<XClass>();
myclass.add(new XClass());
myclass.add(new XClass());
En général, un ArrayList
est de toute façon une solution préférable à un tableau pour plusieurs raisons. Tout d'abord, les tableaux sont mutables. Si vous avez une classe qui fait ceci :
class Myclass {
private int[] items;
public int[] getItems() {
return items;
}
}
vous avez créé un problème car un appelant peut modifier votre membre de données privé, ce qui conduit à toutes sortes de copies défensives. Comparez cela à la version List :
class Myclass {
private List<Integer> items;
public List<Integer> getItems() {
return Collections.unmodifiableList(items);
}
}
0 votes
J'ai corrigé le formatage de la question, vous pouvez juste le titre si vous voulez, soyez juste descriptif. et bienvenue à stackoverflow ! :D