Video: Exploring JavaScript and the Web Audio API by Sam Green and Hugh Zabriskie 2024
Arrays in Java sunt frumoase, dar au unele limitari grave. Imaginați-vă că stocați numele clienților în ordine predeterminată. Codul conține o matrice, iar matricea are spațiu pentru 100 de nume.
Numele șirului [] = nou șir [100]; pentru (int i = 0; i <100; i ++) {name [i] = String nou ();}
Totul este bine până când, într-o zi, Pe măsură ce programul dvs. rulează, introduceți datele pentru clientul 101, sperând cu disperare că matricea cu 100 de componente se poate extinde pentru a se potrivi nevoilor dvs. în creștere.
Nu există noroc. Arrays nu se extind. Programul dvs. se blochează cu ajutorul unui ArrayIndexOutOfBoundsException.
"În următoarea mea viață, voi crea mese cu lungimea de 1 000," îți spui tu. Și când viața voastră viitoare se desfășoară, faceți exact asta.
Numele șirului [] = nou șir [1000 ]; pentru (int i = 0; i << 1000 ; i ++) {name [i] = nou String ();} Dar în timpul vieții viitoare apare o recesiune economică. În loc să aveți 101 clienți, aveți doar 3 clienți. Acum, pierdeți spațiu pentru 1 000 de nume când ar fi făcut spațiu pentru 3 nume.
->
Și dacă nu se produce recesiune economică? Navigați împreună cu mărimea dvs. de mărimea 1, 000, folosind un spațiu ordonat de 825 în matrice. Se utilizează componentele cu indicii 0 până la 824, iar componentele cu indicii 825 până la 999 așteaptă în liniște să fie umplut.Într-o zi, un client nou nou apare. Deoarece clienții dvs. sunt stocați în ordine (în ordine alfabetică, după numele de familie, numeric prin numărul de securitate socială, indiferent), doriți să strângeți acest client în componenta corectă a matricei. Problema este că acest client aparține foarte devreme în matrice, la componenta cu indicele 7. Ce se întâmplă atunci?
Continuați să faceți acest lucru până când ați mutat numele în componenta 7. Apoi ați pus numele noului client în componenta 7. Ce durere! Sigur, computerul nu se plânge. Dar, pe măsură ce vă mișcați în jurul tuturor acestor nume, pierdeți timpul de procesare, pierdeți puterea și pierdeți tot felul de resurse.
"În următoarea mea viață, voi lăsa trei componente goale între două nume. "Și, desigur, afacerea dvs. se extinde. Până când, în cele din urmă, veți descoperi că trei nu sunt suficiente.