Transcript for:
Fondamenti degli Array in Java

Un buongiorno a tutti, bentornati. Episodio numero 15 del corso di Java. Quest'oggi arriviamo agli array.

C'è un po'di roba di cui parlare, lo vedete qui. Quindi non perdiamo tempo e arriviamo subito al sodo. Allora, cosa sono gli array? Gli array possiamo definirli come collezioni di dati.

Quindi anziché andare a scrivere, ad esempio, int x uguale 3, int y uguale 4, int z uguale 3, cinque sei scusatemi se per motivi strani avesse un bisogno di averli tutti in un unico punto perché magari sono correlati ok tipo la lista di voti che abbiamo preso in questo quadrimestre no voto uno storia no una cosa del genere poi voto due storia voto tre voto tre storia e cose del genere lasciate perdere i numeri dicevo avremmo veramente tanti voti, tante variabili sotto innanzitutto perché avremo un po'di voti per ciascuna materia e poi avremmo comunque tante materie da riportare quindi ci ritroveremo con veramente tante variabili questo è un esempio un po'stupido, un po'banale ma che ci può far capire perché abbiamo bisogno di collezioni di dati, ovvero un'unica variabile che va a contenere letteralmente più valori, lasciate perderla sin tassi per ora, mi serve per farvi capire il concetto, ok? Quindi come potete vedere Se arrivate da altri linguaggi di programmazione, magari l'avete già visto, anche se non avete mai programmato, abbiamo una collezione, così si scriverebbe in Java, così invece si scrive in JavaScript, ok? Ve lo faccio per chiarezza.

Facciamo finta che sia JavaScript, no? Vedete che abbiamo una collezione di dati, ovvero abbiamo più voti e quindi avremo qua voti storia, ok? Anziché andare a fare tante variabili, quindi capite dove sta l'utilità degli array. Consiste nell'andare ad aggregare dei dati.

che hanno necessità di stare insieme in un'unica variabile. Punto. Quindi gli array, ripetiamo, sono collezioni di dati che contengono appunto dati correlati tra di loro in qualche modo, ok?

Non andremo mai a salvare i voti di storia con la mia altezza e magari quanto è lungo il diametro della Terra o del Sole, capite? Di solito sono dati correlati tra di loro. Quindi, adesso che abbiamo visto cosa sono gli array, come possiamo crearli in Java?

È molto semplice. Dobbiamo andare a definire... Int che è il tipo dell'array in questo caso quindi voglio creare un int ma gli specifico che è un array quindi vedete che utilizziamo le parentesi quadre va bene in questo caso andiamo a fare numeri perché voglio creare l'array numeri e cominciamo col creare un array vuoto quindi dobbiamo creare un array vuoto la differenza degli array di java con il resto dei linguaggi di programmazione che abbiamo visto è che gli array di java hanno una dimensione fissa ok il che vuol dire che dobbiamo sceglierla prima e identificarla prima in un modo. Quello che state pensando voi, gli array tipo di JavaScript, sono invece indefiniti, perciò possiamo fare quello che vogliamo, possiamo aggiungere, togliere elementi e via discorrendo. Quindi questi array sono di lunghezza fissa, mentre invece gli array a cui pensiamo noi se arriviamo da JavaScript, ad esempio, sono le array list, che vedremo più avanti, va bene?

Quindi c'è... Ci può essere un po'di confusione se arrivate da un altro linguaggio di programmazione vedendo gli array che però non sono come ve le aspettate e poi scoprire che ci sono delle array list che invece funzionano come vi aspettate, gli array normali, insomma, cercate di entrare nella mentalità, non è sicuramente semplice continuare a cambiare mentalità da un linguaggio di programmazione all'altro, però insomma, diciamo che a parte questi piccoli dettagli, bene o male tutti i linguaggi di programmazione seguono più o meno un filo conduttore, poi ci sono appunto delle diversità del genere. che potrebbero confondervi, in realtà una volta che le capite vanno lisce come l'olio.

Quindi abbiamo detto che andiamo a fare un nuovo array vuoto e andiamo a fare new int, ok? E gli diamo una lunghezza di 3, va bene? Facendo così vedete che non ci da alcun tipo di problema, quindi abbiamo creato numeri, che è un array di interi, ok?

E andiamo a creare effettivamente un nuovo array di interi con lunghezza 3, ok? Quindi dopo cosa dobbiamo fare? Dobbiamo andare a inserire questi elementi, quindi magari lo vogliamo creare vuoto a un certo punto e poi più avanti andremo a buttarci degli elementi.

Quindi come facciamo a buttarci gli elementi più avanti? Prendiamo numeri, ok? Prendiamo l'indice, in questo caso partiamo da 0, ok? E gli buttiamo dentro un numero, facciamo 10, poi facciamo numeri 1, poi vi spiego bene gli indici, ok?

Con calma arriviamo a tutto e qua facciamo 20. E poi facciamo numeri 2 uguale 30. Se io andassi avanti, faccio vedere numeri 3 uguale 40 e numeri 4. uguale 50 qua non ci dà errore ma se faccio play vedete che ci dà un errore ovvero che abbiamo aggiunto ok abbiamo un array di lunghezza 3 a cui abbiamo aggiunto a cui abbiamo aggiunto dei valori extra quindi proviamo anche con solo 3 stessa cosa se invece ci limitiamo a 0 1 2 come vedete nessun problema quindi la lunghezza 3 e questi sono tre elementi 0 1 Non è che possiamo cambiare e fare un 2, 3 o 4, 5, 6 perché gli array partono da 0 e poi ci arriviamo quando usiamo un altro tipo di array, un'altra forma sintattica, ve lo farò vedere per bene. Quindi abbiamo creato un array vuoto e abbiamo associato gli elementi. Vediamo adesso la lunghezza di un array, ok? Così riesco a parlarvi anche degli indici più avanti introducendo anche questo concetto perché poi ci si confonde. Allora facciamo system.out.println, apriamo.

E mettiamo numeri.length, eccola qua, length sta per lunghezza, mandiamo a schermo e abbiamo 3, quindi 3 è il numero di elementi, ma gli indici vanno da 0 a 2, ricordatevi questa cosa, può essere confusionaria, ma non preoccupatevi. Proviamo a mostrare gli elementi e a modificarli, quindi abbiamo numeri e mandiamo a schermo numeri 2, vediamo cosa ci esce, ci esce 30, perfetto. Mandiamo a schermo numeri 0 e ci esce 10, mandiamo a schermo numeri 1 e ci uscirà 20. Va bene?

Andiamo però invece a modificare gli elementi. Ci basterà sempre riprendere l'indice, in questo caso prendiamo l'1, facciamo così e mettiamo 100. Dopodiché copiamo questo e vi faccio vedere come cambia. Quindi se io faccio play abbiamo 20 e 100. Questo perché?

La dimensione degli array è fissa, non possiamo avere più elementi così o meno elementi di così, ma quello che possiamo fare è comunque modificarli. Per modificarli ci basta accedere con l'indice. Ok, quindi numeri oppure array e tra parentesi quadre che indicano l'array mettiamo l'indice. Allora, che cosa sono questi indici?

Questi indici indicano la posizione degli elementi nell'array. Vi faccio vedere un altro esempio. int, vado a far così e modifico numeri a sto giro in realtà possiamo eliminare questo, possiamo eliminare questi, non è un problema, facciamo così e facciamo int numeri uguale e usiamo un altro tipo di sintassi in questo tipo di sintassi non vogliamo creare un array vuoto direttamente ma vogliamo già metterci dentro dei numeri quindi 10, 20, 30, 40 e abbiamo il nostro array ora se io mando a schermo numero 1 cosa vi aspettate?

Dovrebbe uscire 20 Vediamo a schermo, assolutamente ci esce 20. Allora, che cosa sono questi indici? Questi indici, dicevo, indicano la posizione dell'oggetto. Gli array, in tutti i linguaggi di programmazione, partono a contare da 0. Quindi la posizione 0 è il 10, la posizione 1 è il 20, 2 è il 30, 3 è 40. Quindi se io metto posizione 0, chiaramente sto accedendo al 10. E vi ho fatto vedere come se noi scriviamo numeri 0 uguale 100, prima di mandarlo a schermo, quindi numeri 0 uguale 100, voi capite che abbiamo avuto accesso alla posizione 0, che è 10, la stiamo modificando con 100 e la mandiamo a schermo. Ok, vi ho detto prima della length, quindi se io riprendo qua la length, mandiamo a schermo e la length è 4, ma non ho capito, alcuni si confondono perché vedono che numeri va a...

da 0 a 3 ok qui ne abbiamo che numeri facciamo rivedere un attimo abbiamo come indici abbiamo numeri 0 e come massimo 3 però seguitemi l'indice partono da 0 sono come degli indirizzi ok ma la length è la quantità di elementi quindi contate con me allora elemento all'indice 0 ne abbiamo 1 elemento all'indice 1 abbiamo due elementi elemento all'indice 2 abbiamo 3 elementi elemento all'indice 3 che è 40 e abbiamo 4 elementi quindi mi raccomando non confondete la length che è la lunghezza che è la quantità di elementi effettiva con la loro posizione la posizione è un indirizzo e si parte a contare da 0 mentre la length è la quantità di oggetti effettivamente presenti nell'array e quelli sono numeri normali cioè è Anche se la posizione è 0, comunque è un elemento. Cioè, bocca da fare. Anche se la posizione fosse AB05, è comunque un elemento. Va bene? Quindi, a volte le persone hanno questa difficoltà a capire e distinguere le due cose.

Abbiamo detto, invece, se volessimo, vi ho fatto vedere come raggiungere gli elementi per indice. Vi faccio vedere una piccola cosa. Una piccola cosa potrebbe essere come raggiungere l'ultimo elemento, oppure a ritroso. Un modo molto semplice è di fare NUMERI. e ci basta prendere length meno 1, scusatemi, devo fare numeri, numeri.length, meno 1. Se io mando a schermo, vedete che otteniamo 40. Se io invece mandassi a schermo numeri, e come indice metto numeri.length, e quindi è l'ultimo perché vado a prendere l'ultimo con la lunghezza.

No, perché la lunghezza, vedete, la lunghezza è 4, ma l'ultimo indice, partendo da 0, è length meno 1. Ricapitoliamo. Questi sono quattro elementi, quindi questo dovrebbe essere il quarto elemento o l'elemento 4, ma partendo da 0 contiamo insieme 0, 1, 2, 3. Quindi sarà sempre length meno 1. Di conseguenza se noi vogliamo andare a ritroso negli array dobbiamo fare length meno 1 piuttosto che length meno 2. Ed ecco che siamo arrivati qua. Ora vediamo come ciclare gli elementi dell'array. Abbiamo visto il ciclo 4 e vi ho detto che il ciclo 4 è...

ottimale per ciclare gli array ne avevamo già parlato, quindi non perdiamo tempo e facciamolo, for andiamo a fare qualcosa, facciamo system punto out punto print ln cosa mandiamo a schermo, al momento lasciamo vuoto, ok e andiamo a fare int i uguale 0 e poi facciamo i minore di numeri punto length ok e poi E poi andiamo a fare i++, giusto? L'unica cosa che abbiamo cambiato rispetto all'esempio del for che avevo fatto è che qua c'era un 5 arbitrario e qua abbiamo messo numeri.length. Quindi vi ho detto che sappiamo sempre quanti sono, noi personalmente non lo sappiamo, ma sappiamo che i dovrà andare fino alla lunghezza dell'array, ok? Quindi cosa manderemo a schermo? Manderemo a schermo, ok?

Vi ricordo che parte da 0, esattamente come gli indici. Quindi ne possiamo mandare a schermo numeri. E tra parentesi mettiamo l'indice che è uguale a i, perché i parte a contare da 0 esattamente come il nostro indice. Vedete un po'in questo caso i non come iteratore, ma come indice, ok? Una cosa molto simile, quindi se io mando a schermo, vedete che abbiamo 10, 20, 30, 40. Ecco come potete iterare un array e io vi consiglio di fare qualche prova, perché magari qualcuno non ha accolto a pieno questo concetto.

Fate qualche prova, è veramente semplice, ma cercate di capire il concetto più che stressarvi. sulla numeri.length e numeri tra parentesi i, queste sono le cose veramente importanti perché il for di base l'abbiamo già visto, vediamo invece il for each, il for each ve lo ricordate? è semplicemente un for dove abbiamo int numero, l'abbiamo già visto di numeri e noi cosa facciamo? mandiamo a schermo, questa è la versione più facile per gli array, è veramente una gioia sintattica, vi direi per il palato ma non stiamo mangiando, è veramente una gioia sintattica da scrivere e noi semplicemente Mandiamo a schermo, system out, print, ma non mettiamo un numero i, mandiamo un numero, perché numero vi ho già detto che prende già, quindi numeri è tutto questo, ma passando in rassegna ogni ciclo, che cosa fa?

Numero è uguale a 1, 2, 3, 4, o per indici 0, 1, 2, 3, ok? Nascondiamo questo e mandiamo a schermo il nostro for each e il risultato assolutamente non cambia. Quindi questi erano gli array?

Vi ho spiegato quello che è tutta l'introduzione, cosa sono, come creare un array vuoto, definendo già la dimensione. Qua invece possiamo direttamente mettere gli item senza rimandare a dopo come abbiamo fatto all'inizio di questo episodio. Abbiamo visto la lunghezza degli array, come modificare e accedere agli elementi e poi abbiamo visto come ciclare un array con for e for each. Dunque, io vi ringrazio per essere rimasti con me.

Nel prossimo video parleremo di array 2D. Avrei potuto farlo insieme a alcuni corsi online, sia video che... documentazioni li mettono insieme però secondo me il concetto era troppo insomma array 2D non è così facile da assimilare come concetto da capire perciò video a parte avete se lo state guardando in contemporanea con il mio corso 24 ore per ripassare gli array fino a che arriveranno gli array 2D per tutti gli altri vi basta fare prossimo video quindi vi dicevo noi ci vediamo nel prossimo video sotto in descrizione tutto quello che serve per sostenere il canale se ci tenete particolarmente entra nella community un abbraccio e alla prossima ciao ciao