Programmation Java: les limitations de tableaux

Tableaux en Java sont gentils, mais ils ont de sérieuses limitations. Imaginez que vous stockez les noms des clients dans un ordre prédéterminé. Votre code contient un tableau, et le tableau dispose d'un espace de 100 noms.

Nom de String [] = new String [100] -pour (int i = 0 à i lt; 100- i ++) {nom [i] = new String () -}

Tout va bien jusqu'à ce que, un jour, numéro de client 101 se montre. En tant que votre programme fonctionne, vous entrez des données pour le client 101, espérant désespérément que le tableau avec 100 composants peut se développer pour répondre à vos besoins croissants.

Pas de chance. Les tableaux ne se développent pas. Votre programme se bloque avec un ArrayIndexOutOfBoundsException.




“ Dans ma prochaine vie, je vais créer des tableaux de longueur 1000, n ° 148; vous vous dites. Et quand votre prochaine vie roule autour, vous faites juste cela.

Nom de String [] = new String [1000] -pour (int i = 0 à i lt; 1000- i ++) {nom [i] = new String () -}

Mais lors de votre prochaine vie, une récession économique se produit. Au lieu d'avoir 101 clients, vous avez seulement 3 clients. Maintenant, vous perdez l'espace pour 1.000 noms lorsque l'espace pour 3 noms ferait.

Et si aucune récession économique se produit? Vous naviguez avec votre tableau de taille de 1000, en utilisant un range de 825 places dans le tableau. Les composants avec des indices de 0 à 824 sont utilisés, et les composants avec des indices 825 à 999 sont en attente tranquillement à pourvoir.

Un jour, un client de toute nouvelle montre. Parce que vos clients sont stockées dans l'ordre (par ordre alphabétique par nom, par numéro de sécurité sociale, que ce soit), vous voulez en faire ce client dans le composant correcte de votre tableau. Le problème est que ce client appartient très tôt dans le tableau, à la composante d'indice 7. Qu'advient-il alors?

Vous prenez le nom de numéro de composant 824 et de le déplacer au composant 825. Ensuite, vous prenez le nom dans le composant 823 et de le déplacer au composant 824. Prenez le nom dans le composant 822 et le déplacer vers le composant 823.

Vous continuez à faire jusqu'à ce que vous avez déplacé le nom du composant 7. Ensuite, vous mettez le nom du nouveau client dans le composant 7. Quelle douleur! Bien sûr, l'ordinateur ne se plaint pas. Mais comme vous vous déplacez tous ces noms, vous perdez du temps de traitement, vous perdez le pouvoir, et vous perdez toutes sortes de ressources.

“ Dans ma prochaine vie, je vous laisse trois composants vides entre tous les deux noms ”. Et bien sûr, votre entreprise se développe. Jusqu'à ce que, finalement, vous trouverez que trois ne sont pas assez.


» » » » Programmation Java: les limitations de tableaux