CodeGym /Java Blog /Random-IT /Vecchio livello 07
John Squirrels
Livello 41
San Francisco

Vecchio livello 07

Pubblicato nel gruppo Random-IT

Tecnologie informatiche

Vecchio livello 07 - 1La rivoluzione informatica, iniziata alla fine del 20° secolo, ha portato alla creazione di Internet (il web) negli anni '90. E quello fu l'inizio di una rivoluzione ancora più grande. L'effetto della creazione di Internet è come l'industrializzazione. Ma la cosa più gustosa è che questo processo è appena iniziato.

Nuovo mondo

La quantità del sito è di oltre 200 milioni. 3 miliardi di utenti Internet là fuori. Aste Internet, siti Web, negozi online, servizi Internet. L'industria dell'Information Technology cresce del 20% -30% all'anno. Sono tassi mostruosi. E continua a crescere. Negli ultimi 10 anni nella Silicon Valley (il principale centro dell'industria high-tech del mondo), ogni 2 mesi viene creata un'azienda, che poi costa miliardi di dollari. Per non parlare di star di Internet come Facebook ($ 220 miliardi), Amazon ($ 140 miliardi) e Google ($ 350 miliardi). Tutte queste aziende non apparirebbero, se non ci fosse Internet. Tutto ciò si traduce in una forte domanda di specialisti IT. L'industria high-tech mondiale richiede: sviluppatori di software, designer, tester QA, architetti, manager, amministratori di sistema e altri specialisti.

È bello essere uno specialista IT

Vecchio livello 07 - 2Se sei uno specialista IT, è un momento d'oro per te. Puoi lavorare per una grande azienda e vivere in una piccola città o lavorare per un'azienda straniera. Potresti guadagnare due volte meno che nell'UE, ad esempio, ma otterrai da 3 a 10 volte di più rispetto al mercato del lavoro locale. Più piccola è la città, maggiore è la differenza. Riceverai una preziosa esperienza, buoni soldi e un futuro luminoso. A volte andrai in viaggio d'affari nell'ufficio del tuo datore di lavoro. E se ti piace molto, puoi trasferirti lì. Una marea crescente solleva tutte le barche. Perché non sarebbe tale barca che è al momento giusto e nel posto giusto? Anche questa è un'arte.

Hai raggiunto un nuovo livello

Livello 7

Vecchio livello 07 - 3

1 Elly, Array

- Ehi, Amico! - Che succede, Elly? - Oggi ti parlerò di una nuova entità interessante: gli array. Un array è un tipo di dati speciale che può memorizzare più di un valore. Vecchio livello 07 - 4- Inizierò con l'analogia. Confrontiamo una casa normale e una a molti piani. Una casa è occupata da un'unica famiglia, mentre un grattacielo è suddiviso in appartamenti. È necessario specificare l'indirizzo univoco per scrivere una lettera a una famiglia che vive nella casa. Per una famiglia che vive in un appartamento, è necessario specificare anche il numero dell'appartamento. - Sì, è chiaro. - Quindi, una variabile array è come un grattacielo. Puoi memorizzare diversi valori al suo interno. Tale variabile ha alcuni appartamenti (celle). Ciascuno degli appartamenti è accessibile tramite il suo numero (indice).Per fare ciò, dopo il nome della variabile tra parentesi quadre è necessario specificare l'indice della cella a cui si accede. È piuttosto semplice. - Lo spero. - Una variabile array (un grattacielo) può essere di qualsiasi tipo, quindi devi solo scrivere TypeName[] variable_nameinvece di TypeName variable_name. - Ecco alcuni esempi di cosa puoi fare con gli array: Vecchio livello 07 - 5- Che emozione! - Una variabile di matrice richiede un'inizializzazione aggiuntiva. - Perchè così? - Una normale variabile è pronta per l'uso subito dopo la sua dichiarazione. Per quanto riguarda gli array, è un po' più complicato: - Per prima cosa, devi creare un contenitore di N elementi, e poi puoi inserirvi dei valori. Vecchio livello 07 - 6- Sì. Ora diventa più chiaro. - Le basi sugli array :
  1. La matrice è composta da più celle.
  2. Si accede ad ogni cella indicandone il numero.
  3. Tutte le celle sono dello stesso tipo.
  4. In un array di n elementi, le celle hanno indici 0,1,2,...,n-1. Non ci sono celle con indice n nell'array.
  5. Il valore iniziale per tutte le celle è nullo, per i tipi primitivi – 0, 0.0 per quelli frazionari, falso - per il tipo booleano, esattamente come nelle variabili semplici non inizializzate.
  6. String[] list è solo una dichiarazione di una variabile. Per prima cosa devi creare un array (contenitore) e inserirlo nella variabile, quindi utilizzarlo. Vedere l'esempio seguente.
  7. Quando crei un array di oggetti (contenitore), è necessario specificarne la lunghezza (quante celle avrà). Per fare questo è necessario scrivere un comando: TypeName è il tipo di valori che verranno memorizzati nelle celle dell'array.new TypeName[n];
Vecchio livello 07 - 7- Esempi: Vecchio livello 07 - 8

2 Risha, Disposizione degli array in memoria

- Ehi, Amico! Lascia che ti mostri come funziona tutto nella memoria: Vecchio livello 07 - 9- E cos'è questo 345? - In realtà l'ho preso dal nulla, ma normalmente è l'indirizzo della stringa contenente la parola «Stop». - Per quanto riguarda gli array, è un po' più complicato:
Vecchio livello 07 - 10
- 155,166,177 sono anche numeri tirati fuori da un cappello che rappresentano l'indirizzo delle stringhe a destra? - Sì. È un bene che tu abbia indovinato. Nota che, nella seconda immagine, c'è un oggetto aggiuntivo: un array di 10 celle. - È tutto chiaro, grazie. Un'immagine vale più di mille parole. Grazie Risha.

3 Risha, Esempi di array Array

- Voglio darti alcuni esempi di cose interessanti che puoi fare con gli array: Esempio 1. Vecchio livello 07 - 11Esempio 2. Vecchio livello 07 - 12Esempio 3. Vecchio livello 07 - 13Esempio 4. Vecchio livello 07 - 14Esempio 5. Vecchio livello 07 - 15

4 Diego, Compiti per la creazione e l'utilizzo di array

- Ehi, Amico! Ecco un paio di compiti per te, amico:
Compiti
1 1. Massimo di un array di 20 numeri
1. Nel metodo initializeArray() :
1.1. Creare un array di 20 numeri
1.2. Leggi dalla tastiera 20 numeri e riempi l'array con loro
2. Il metodo max(int[] array) dovrebbe trovare il numero massimo di elementi dell'array

2

2. Array di stringhe in ordine inverso
1. Creare un array di 10 stringhe.
2. Leggere dalla tastiera 8 stringhe e memorizzarle nell'array.
3. Visualizzare sullo schermo il contenuto dell'intero array (10 elementi) in ordine inverso. Ogni elemento dovrebbe trovarsi su una nuova riga.

3 3. 2 array
1. Creare un array di 10 stringhe.
2. Crea un altro array di 10 numeri.
3. Leggi dalla tastiera 10 stringhe e riempi con esse l'array di stringhe.
4. Scrivere la lunghezza di una stringa da ogni cella dell'array di stringhe nella cella dell'array di numeri con lo stesso indice. Visualizza sullo schermo il contenuto dell'array di numeri. Ogni valore dovrebbe trovarsi su una nuova riga.
4 4. Array di numeri in ordine inverso
1. Creare un array di 10 numeri.
2. Leggere dalla tastiera 10 numeri e memorizzarli nell'array.
3. Disporre gli elementi dell'array in ordine inverso.
4. Visualizzare sullo schermo il risultato. Ogni valore dovrebbe trovarsi su una nuova riga.
5 5. Un array grande e due piccoli
1. Creare un array di 20 numeri.
2. Leggere dalla tastiera 20 numeri e riempire l'array con essi.
3. Creare due matrici di 10 numeri ciascuna.
4. Copiare i numeri dell'array grande in due array piccoli: la metà dei numeri nel primo array, l'altra metà nel secondo.
5. Visualizzare sullo schermo il secondo piccolo array. Ogni valore dovrebbe trovarsi su una nuova riga.

5 Elly, ArrayList contro Array

- Sono io. - Ciao, Elly! - Oggi abbiamo un nuovo entusiasmante argomento! Ora vi parlerò di una nuova classe interessante, la ArrayList . - Oh, una nuova classe? Oh! Che cosa fa? - Permettetemi di iniziare con un piccolo retroscena. Ai programmatori non piaceva una proprietà di un array: è impossibile cambiarne le dimensioni. Cosa fare se si desidera memorizzare altre tre voci nell'array, ma c'è solo uno spazio libero? - L'unica soluzione al problema della mancanza di spazio era creare un array molto grande che contenesse tutti gli elementi. Ma questo spesso portava a un uso inefficiente della memoria. Ad esempio, se nel 99% della durata dell'array è necessario memorizzare solo 3 elementi nell'array e solo nell'1% - 100 elementi, è necessario creare un array di 100 elementi. - Quindi cosa hanno escogitato i programmatori? - Hanno scritto la classe ArrayList che svolgeva lo stesso lavoro di Array, ma poteva variare le sue dimensioni. - Una mossa interessante. E come hanno fatto? - Ogni oggetto ArrayList memorizza al suo interno un normale array di elementi. Quando leggi elementi da ArrayList , li legge dal suo array interno. Quando scrivi gli elementi, li scrive nell'array interno. Confronta: Vecchio livello 07 - 16- Allora qual è il vantaggio di ArrayList? Quanto a me, il codice è diventato più lungo. - Innanzitutto, ArrayList supporta alcune funzionalità aggiuntive non disponibili nell'array, che i programmatori utilizzano molto spesso. Per esempio,inserire elementi ed eliminarli dal centro dell'array senza lasciare buchi. - In secondo luogo, ArrayList può modificarne le dimensioni . Quando ArrayList deve memorizzare un altro elemento nel suo array interno e non c'è spazio libero, accade quanto segue all'interno di ArrayList :
  1. viene creato un altro array, grande il doppio.
  2. tutti gli elementi del vecchio array vengono copiati nel nuovo array.
  3. un nuovo array viene memorizzato in una variabile interna dell'oggetto ArrayList, il vecchio array viene dichiarato spazzatura (semplicemente non memorizziamo più il suo riferimento).
Vecchio livello 07 - 17E come lavorare con ArrayList? - In realtà, allo stesso modo di un array. Guarda qui. Confrontiamo il lavoro con ArrayList e lavoriamo con un array. Ad esempio, risolviamo il seguente compito: « Il programma dovrebbe leggere dalla tastiera 10 stringhe e visualizzarle sullo schermo in ordine inverso ». - Controlla questo: Vecchio livello 07 - 18- Ho dipinto azioni equivalenti in entrambe le colonne con un colore. - Sembra diverso, ma se guardi più da vicino è tutto uguale. - Sì. Ora non abbiamo parentesi quadre quando si utilizza ArrayList . Invece, usiamo i metodi get , set e add . - L'ho notato. Ma è ancora molto simile.

6 Diego, attività ArrayList

- Non fai più niente? Sei un robot, vero? I robot sono sempre impegnati con qualcosa. Ecco alcuni compiti per tenerti aggiornato. Ma cominciamo con un paio di consigli. - Suggerimento 1: un elenco indica più comunemente un ArrayList . - Suggerimento 2: Una stringa indica il tipo String . - Suggerimento 3: creare un elenco di stringhe significa più comunemente ArrayList<String> list = new ArrayList<String>();
Compiti
1 Attività 1. 5 stringhe diverse in un elenco
1. Creare un elenco di stringhe.
2. Aggiungi 5 stringhe diverse all'elenco.
3. Visualizzare sullo schermo le sue dimensioni.
4. Visualizzare sullo schermo il contenuto dell'elenco. Ogni valore dovrebbe trovarsi su una nuova riga. Usa un anello.
2 Compito 2. 5 righe: «101», «102», «103», «104», «105»
1. Crea un elenco di stringhe.
2. Aggiungere 5 stringhe all'elenco. «101», «102», «103», «104», «105».
3. Elimina il primo, quello centrale e l'ultimo.
4. Visualizzare sullo schermo il contenuto dell'elenco. Ogni valore dovrebbe trovarsi su una nuova riga. Usa un anello.
5. Visualizzare sullo schermo le sue dimensioni. (Dopo aver eliminato una voce, gli indici delle altre voci cambiano. Ad esempio, se eliminiamo il primo elemento, il secondo diventa il primo).
3 Attività 3. 5 righe in ordine inverso
1. Crea un elenco di stringhe.
2. Leggi 5 stringhe dalla tastiera, quindi aggiungile all'elenco.
3. Disporli in ordine inverso.
4. Visualizzare sullo schermo il contenuto dell'elenco. Ogni valore dovrebbe trovarsi su una nuova riga. Usa un anello.
4

Attività 4. Aggiungere 5 stringhe all'inizio dell'elenco
1. Creare un elenco di stringhe.
2. Leggere dalla tastiera 5 stringhe. Aggiungi queste stringhe all'inizio dell'elenco, non alla fine.
3. Visualizzare sullo schermo il contenuto dell'elenco. Ogni valore dovrebbe trovarsi su una nuova riga. Usa un anello.

5 Attività 5. Eliminare l'ultima stringa e aggiungerla all'inizio dell'elenco
1. Creare un elenco di stringhe.
2. Leggere dalla tastiera 5 stringhe. Aggiungi queste stringhe all'elenco.
3. Eliminare l'ultima stringa e aggiungerla all'inizio dell'elenco. Ripeti questa azione 13 volte.
4. Visualizzare sullo schermo il contenuto dell'elenco. Ogni valore dovrebbe trovarsi su una nuova riga. Usa un anello.

7 Risha, Generici

- Ora, un altro fantastico argomento. - Questa giornata è piena di sorprese. È come un vero compleanno. - Oggi ti dirò cosa sono i Generici. I generici sono tipi che hanno parametri. In Java, le classi contenitore consentono di specificare i tipi dei loro oggetti interni . - Quando dichiariamo una variabile generica, specifichiamo due tipi invece di uno: il tipo della variabile e il tipo di dati memorizzati nella variabile. Un buon esempio di questo è ArrayList. Quando creiamo un nuovo oggetto/variabile di tipo ArrayList, è bene specificare anche il tipo di valori da memorizzare all'interno della lista. Vecchio livello 07 - 19- Sembra eccitante. Mi è particolarmente piaciuto quello che hai detto su qualsiasi tipo. - Sembra che sia buono. Infatti, se in un metodo le stringhe vengono inserite in un ArrayList e nell'altro metodo lavori con il suo contenuto e ti aspetti che ci siano solo numeri, il programma andrà in crash. - Vedo. - Finora, non creeremo le nostre classi con parametri di tipo, impareremo a usare le classi scritte dai creatori di Java. - Posso usare qualsiasi classe come parametro di tipo, anche quella scritta da me? - Sì, qualsiasi tipo, tranne quelli primitivi. Tutti i parametri della classe devono essere ereditati dalla classe Object. - Quindi non posso scrivere ArrayList<int> , vero? - Non puoi. Ma gli sviluppatori Java hanno scritto per tipi primitivi i loro analoghi non primitivi - classi ereditate daOggetto . Ecco come appare: Vecchio livello 07 - 20- Tipi primitivi e classi analogiche (classi wrapper) possono essere facilmente assegnate l'una all'altra: Vecchio livello 07 - 21- Bene. Quindi immagino che userò l'ArrayList più spesso.

8 Risha, Esempi di ArrayList, Generics

Vecchio livello 07 - 22- Ora ti darò cose davvero utili. Ecco alcuni pratici esempi per lavorare con ArrayList e Generics: - Esempio 1. Vecchio livello 07 - 23- Esempio 2. Vecchio livello 07 - 24- Esempio 3. Vecchio livello 07 - 25- Esempio 4. Vecchio livello 07 - 26- Esempio 5. Vecchio livello 07 - 27- Fantastico! Quindi, Diego mi affiderà un sacco di compiti simili ora, vero? - Sì!

9 Diego, List<T> attività

- Finalmente sei libero. Sono stanco di tenere a mente questi compiti per te. Eccone un altro paio per tenerti aggiornato:
Attività aggiuntive da svolgere in Intellij Idea
1 1. Tre matrici
1. Leggere dalla tastiera 20 numeri, salvarli in una lista, quindi ordinarli in altre tre liste:
Lista 1 memorizza numeri divisibili per 3 ( x%3==0 )
Lista 2 memorizza numeri divisibili per 2 ( x%2==0 )
L'elenco 3 memorizza il resto dei numeri.
I numeri divisibili per 3 e 2 contemporaneamente (ad esempio 6) appartengono a entrambe le liste – lista 1 e lista 2.
2. Il metodo printList() dovrebbe visualizzare ogni elemento della lista su una nuova riga.
3. Utilizzare il metodo printList() per visualizzare sullo schermo questi tre elenchi. Per prima cosa dovrebbe essere visualizzato l'elenco 1, quindi l'elenco 2, quindi l'elenco 3.
2 2. 5 parole in ordine inverso
Leggere dalla tastiera 5 parole. Aggiungili in un elenco di stringhe e visualizzali sullo schermo in ordine inverso.
3 3. La parola «qui»
1. Crea un elenco delle parole «fermati», «guarda», «ascolta».
2. Aggiungi una stringa contenente «qui» dopo ogni parola.
3. Visualizzare il risultato. Ogni elemento dell'elenco dovrebbe trovarsi su una nuova riga. Usa il ciclo "for".
4 4. Lettere «r» e «l»
1. Crea un elenco di parole/stringhe, riempilo con quello che vuoi.
2. Il metodo fix() dovrebbe:
2.1. eliminare tutte le parole contenenti la lettera «r» dall'elenco delle stringhe
2.2. raddoppia tutte le parole contenenti la lettera «l».
2.3. lasciare la parola invariata se contiene entrambe le lettere «r» e «l».
2.4. non fare niente con altre parole.

Esempio:
salice rosa
quercia
lira


Dati di output : salice
salice
quercia
lira
5 5. Duplicare le parole
1. Leggere dalla tastiera 10 parole/stringhe, aggiungerle in un elenco di stringhe.
2. Il metodo doubleValues ​​dovrebbe duplicare le parole secondo lo schema:
a,b,c → a,a,b,b,c,c.
3. Visualizzare il risultato. Ogni elemento dell'elenco dovrebbe trovarsi su una nuova riga. Usa il ciclo "for".

10 Professore

Vecchio livello 07 - 28- Ho trovato le mie meravigliose lezioni! Quindi oggi acquisirai le conoscenze più preziose in matrici ed elenchi. Eccoli: Suggerimenti su ArrayList in Java

11 Giulio

- Ehi, Amico! Sono contento che tu abbia affrontato tutto questo - ti meriti una ricompensa:

12 Capitan Scoiattoli

- Ciao, soldato! - Buongiorno signore! - Ho delle notizie fantastiche per te. Ecco un rapido controllo per rafforzare le tue abilità. Fallo ogni giorno e migliorerai le tue abilità molto velocemente. Le attività sono appositamente progettate per essere eseguite in Intellij IDEA.
Attività aggiuntive da svolgere in Intellij Idea
1 1. Visualizza i numeri in ordine inverso
Leggi dalla tastiera 10 numeri e riempi l'elenco con essi.
Visualizza sullo schermo i numeri in ordine inverso. Usa il ciclo.
2 2. Spostare le prime M righe alla fine dell'elenco
Leggere dalla tastiera 2 numeri: N e M .
Leggi dalla tastiera N stringhe e compila un elenco con esse.
Sposta le prime M righe alla fine dell'elenco
Visualizza sullo schermo l'elenco. Ogni valore dovrebbe trovarsi su una nuova riga.
3 3. Numero più grande e più piccolo in un array
Crea un array di 20 numeri.
Riempilo con i numeri che vengono letti dalla tastiera.
Trova il numero più grande e più piccolo in un array.
Visualizza sullo schermo i numeri più grandi e più piccoli separati da uno spazio.
4 4. Leggere le stringhe dalla tastiera finché l'utente non inserisce la stringa "end"
Creare un elenco di stringhe.
Leggi dalle stringhe della tastiera (qualunque cosa tu voglia), aggiungile all'elenco.
Leggi le stringhe dalla tastiera finché l'utente non inserisce la stringa "end". "fine" dovrebbe essere omesso.
Visualizza sullo schermo le stringhe. Ogni stringa dovrebbe trovarsi su una nuova riga.
5 5. Bang!
Scrivete un programma che faccia il conto alla rovescia da 30 a 0 e visualizzi «Bang!» alla fine. Il programma dovrebbe ridurre il numero 10 volte al secondo. Utilizzare la funzione seguente per inserire un ritardo:
Thread.sleep(100); //ritardo di un decimo di secondo.
Esempio:
30
29

1
0
Bang!
6 6. Famiglia
Crea una classe Human con i campi: String name , boolean sex , int age , Human father , Human mother . Crea 9 oggetti di classe Human e riempili in modo tale da ottenere due nonni, due nonne, un padre, una madre e tre figli. Visualizza sullo schermo gli oggetti sullo schermo.
Suggerimento:
se scrivi il tuo metodo String toString() nella classe Human, verrà utilizzato per visualizzare un oggetto.
Output di esempio:
Nome: Anna, sesso: femmina, età: 21, padre: Paul, madre: Kate
Nome: Kate, sesso: femmina, età: 55
Nome: Ian, sesso: maschio, età: 2, padre: Michael, madre: Anna
7 7. Sposta un modificatore statico
Sposta un modificatore statico in modo che il programma venga compilato.
- Quei compiti erano per i verdi. Ho aggiunto attività bonus di maggiore complessità. Solo per pistole superiori.
Compiti bonus
1 1. Il programma non viene compilato ed eseguito. Aggiustalo.
Compito: leggere dalla tastiera i dati del gatto e visualizzarli sullo schermo.
Esempio:
il nome del gatto è Jinx, l'età è 6, il peso è 5, la coda = 22 il
nome del gatto è Maisy, l'età è 8, il peso è 7, la coda = 20
2 2. Aggiungere nuove funzionalità al programma.
Vecchio compito: il programma legge le stringhe finché l'utente non inserisce una riga vuota premendo invio. Quindi converte le lettere minuscole in maiuscole (la mamma si trasforma in mamma) e le visualizza sullo schermo.
Nuova attività: il programma dovrebbe leggere le stringhe finché l'utente non inserisce una riga vuota premendo Invio. Il programma crea quindi un nuovo elenco. Se la stringa ha un numero pari di caratteri, la stringa viene duplicata, se dispari, la stringa viene triplicata.
Esempio di input:
Cat
Cats
Me
Esempio di output:
Cat Cat Cat
Cats Cats
Me Me
3 3. Algoritmo di apprendimento e pratica.
Leggi dalla tastiera 20 numeri e visualizzali in ordine decrescente.
Commenti
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION