CodeGym /Java blogg /Slumpmässig /Gammal nivå 07
John Squirrels
Nivå
San Francisco

Gammal nivå 07

Publicerad i gruppen

Informationsteknik

Gammal nivå 07 - 1Datorrevolutionen, som började i slutet av 1900-talet, resulterade i skapandet av internet (webben) på 90-talet. Och det var början på ännu större revolution. Effekten av att skapa Internet är som industrialisering. Men det smaskigaste är att den här processen precis har börjat.

Ny värld

Platsens kvantitet är över 200 miljoner. 3 miljarder internetanvändare där ute. Internet-auktioner, webbsidor, nätbutiker, internettjänster. Informationsteknikindustrin växer med 20–30 % årligen. Det är monstruösa priser. Och det fortsätter att växa. Under de senaste 10 åren i Silicon Valley (världens främsta centrum för högteknologisk industri) skapas ett företag varannan månad, vilket sedan kostar miljarder dollar. För att inte tala om sådana internetstjärnor som Facebook (220 miljarder dollar), Amazon (140 miljarder dollar) och Google (350 miljarder dollar). Alla dessa företag skulle inte dyka upp om det inte fanns något internet. Allt detta leder till hög efterfrågan på IT-specialister. Världens högteknologiska industri kräver: mjukvaruutvecklare, designers, QA-testare, arkitekter, chefer, systemadministratörer och andra specialister.

Det är bra att vara IT-specialist

Gammal nivå 07 - 2Om du är en IT-specialist är det en gyllene tid för dig. Du kan arbeta för ett stort företag och bo i en liten stad eller arbeta för ett utländskt företag. Du kanske tjänar dubbelt mindre än i EU, till exempel, men du får 3-10 gånger mer än på den lokala arbetsmarknaden. Ju mindre stad desto större skillnad. Du får värdefull erfarenhet, bra pengar och en ljus framtid. Ibland åker du på affärsresor till ditt arbetsgivarkontor. Och om du gillar det mycket kan du flytta dit. En stigande tidvatten lyfter alla båtar. Varför skulle inte en sådan båt vara i rätt tid och på rätt plats? Detta är också en konst.

Du har nått en ny nivå

Nivå 7

Gamla nivå 07 - 3

1 Elly, Arrays

- Hej, Amigo! - Hur är det, Elly? - Idag ska jag berätta om en ny intressant enhet - arrayer. En array är en speciell datatyp som kan lagra mer än ett värde. Gamla nivå 07 - 4– Jag börjar med analogi. Låt oss jämföra ett vanligt hus och ett höghus. Ett hus är upptaget av en enda familj, medan ett höghus är uppdelat i lägenheter. Du måste ange den unika adressen för att skriva ett brev till en familj som bor i huset. För en familj som bor i lägenhet ska du dessutom ange lägenhetsnummer. - Ja, det är klart. – Så, en arrayvariabel är som ett höghus. Du kan lagra flera värden i den. En sådan variabel har några lägenheter (celler). Var och en av lägenheterna kan nås med sitt nummer (index).För att göra detta, efter variabelnamnet inom hakparenteser måste du ange indexet för cellen som du kommer åt. Det är ganska enkelt. - Jag hoppas det. - En arrayvariabel (ett höghus) kan vara av vilken typ som helst, så det är bara att skriva TypeName[] variable_nameistället för TypeName variable_name. - Här är exempel på vad du kan göra med arrayer: Gammal nivå 07 - 5- Vad spännande! - En matrisvariabel behöver ytterligare initiering. - Varför då? - En vanlig variabel är klar att användas strax efter dess deklaration. När det gäller arrayer är det lite mer komplicerat: - Först måste du skapa en behållare med N element, och sedan kan du placera värden i den. Gammal nivå 07 - 6- Japp. Det blir tydligare nu. - Grunderna om arrayer :
  1. Arrayen består av flera celler.
  2. Varje cell nås genom att ange dess nummer.
  3. Alla celler är av samma typ.
  4. I en array av n element har cellerna index 0,1,2,...,n-1. Det finns ingen cell med index n i arrayen.
  5. Det initiala värdet för alla celler är null, för primitiva typer - 0, 0,0 för bråkdelar, falskt - för boolesk typ, exakt samma som i enkla oinitierade variabler.
  6. String[] lista är bara en deklaration av en variabel. Först måste du skapa en array (behållare) och lägga den i variabeln och sedan använda den. Se exemplet nedan.
  7. När du skapar en objektmatris (behållare) är det nödvändigt att ange dess längd (hur många celler den kommer att ha). För att göra detta måste du skriva ett kommando: Typnamn är den typ av värden som kommer att lagras i celler i arrayen.new TypeName[n];
Gammal nivå 07 - 7- Exempel: Gamla nivå 07 - 8

2 Risha, Arrangemang av arrayer i minnet

- Hej, Amigo! Låt mig visa dig hur det hela fungerar i minnet: Gammal nivå 07 - 9- Och vad är den här 345:an? - Egentligen plockade jag upp det ur luften, men normalt är det adressen till strängen som innehåller ordet "Stopp". - När det gäller arrayer är det lite mer komplicerat:
Gammal nivå 07 - 10
- Är 155 166 177 också utdragna siffror ur en hatt som representerar adressen till strängar till höger? - Japp. Det är bra att du gissade rätt. Observera att i den andra bilden finns ytterligare ett objekt - en array med 10 celler. - Allt är klart, tack. En bild säger mer än tusen ord. Tack, Risha.

3 Risha, Exempel på arrayer Array

– Jag vill ge dig några exempel på intressanta saker du kan göra med arrayer: Exempel 1. Old Level 07 - 11Exempel 2. Old Level 07 - 12Exempel 3. Old Level 07 - 13Exempel 4. Old Level 07 - 14Exempel 5. Old Level 07 - 15

4 Diego, Uppgifter för att skapa och använda arrayer

- Hej, Amigo! Här är ett par uppgifter för dig, kompis:
Uppgifter
1 1. Maximalt en array med 20 nummer
1. I metoden initializeArray() :
1.1. Skapa en matris med 20 nummer
1.2. Läs från tangentbordet 20 siffror och fyll arrayen med dem
2. Metoden max(int[] array) ska hitta det maximala antalet element i arrayen

2

2. Array av strängar i omvänd ordning
1. Skapa en array med 10 strängar.
2. Läs från tangentbordet 8 strängar och lagra dem i arrayen.
3. Visa innehållet i hela arrayen (10 objekt) på skärmen i omvänd ordning. Varje objekt ska finnas på en ny rad.

3 3. 2 arrayer
1. Skapa en array med 10 strängar.
2. Skapa en annan array med 10 nummer.
3. Läs från tangentbordet 10 strängar och fyll strängarrayen med dem.
4. Skriv längden på en sträng från varje cell i strängmatrisen i cellen med tal med samma index. Visa innehållet i siffrorna på skärmen. Varje värde ska vara på en ny rad.
4 4. Matris med nummer i omvänd ordning
1. Skapa en matris med 10 nummer.
2. Läs från tangentbordet 10 nummer och lagra dem i arrayen.
3. Ordna matriselement i omvänd ordning.
4. Visa resultatet på skärmen. Varje värde ska vara på en ny rad.
5 5. En stor och två små arrayer
1. Skapa en array med 20 nummer.
2. Läs 20 siffror från tangentbordet och fyll arrayen med dem.
3. Skapa två arrayer med 10 nummer vardera.
4. Kopiera numren för den stora arrayen till två små arrayer: hälften av siffrorna till den första arrayen, den andra hälften till den andra.
5. Visa den andra lilla arrayen på skärmen. Varje värde ska vara på en ny rad.

5 Elly, ArrayList vs. Array

- Det är jag. - Hej, Elly! – Idag har vi ett nytt spännande ämne! Nu ska jag berätta om en intressant ny klass, ArrayList . - Åh, en ny klass? Wow! Vad gör den? - Låt mig börja med en liten bakgrundshistoria. Programmerarna gillade inte en egenskap hos en array: det är omöjligt att ändra dess storlek. Vad ska du göra om du vill lagra tre poster till i arrayen, men det finns bara ett ledigt utrymme? – Den enda lösningen på utrymmesbristen var att skapa en väldigt stor array som innehåller alla element. Men detta ledde ofta till ineffektiv användning av minnet. Till exempel, om du under 99 % av arrayens livslängd behövde lagra endast 3 element i arrayen, och bara i 1 % - 100 element, skulle du behöva skapa array med 100 element. – Så vad kom programmerarna på? – De skrev klassen ArrayList som gjorde samma jobb som Arrayen, men som kunde variera sin storlek. – Ett intressant drag. Och hur gjorde de det? - Varje ArrayList -objekt lagrar en vanlig array av element inuti. När du läser element från ArrayList läser den dem från sin interna array. När du skriver elementen, skriver den dem till den interna arrayen. Jämför: Old Level 07 - 16- Så vad är fördelen med ArrayList? För mig blev koden längre. - För det första stöder ArrayList några ytterligare funktioner som inte är tillgängliga i array, som programmerare använder väldigt ofta. Till exempel,infoga element i och ta bort dem från mitten av arrayen utan att lämna hål. - För det andra kan ArrayList ändra sin storlek . När ArrayList behöver lagra ytterligare ett element i sin interna array, och det inte finns något ledigt utrymme, händer följande inuti ArrayList :
  1. ytterligare en array skapas, dubbelt så stor.
  2. alla element i den gamla arrayen kopieras till den nya arrayen.
  3. en ny array lagras i en intern variabel i ArrayList-objektet, den gamla arrayen förklaras som skräp (vi lagrar helt enkelt inte dess referens längre).
Old Level 07 - 17Och hur arbetar man med ArrayList? - Egentligen på samma sätt som med en array. Titta här. Låt oss jämföra arbete med ArrayList och arbeta med en array. Som ett exempel, låt oss lösa följande uppgift: « Programmet ska läsa från tangentbordet 10 strängar och visa dem på skärmen i omvänd ordning » . - Markera detta: Old Level 07 - 18- Jag målade likvärdiga åtgärder i båda kolumnerna med en färg. – Det verkar annorlunda, men om man tittar närmare är allt sig likt. - Japp. Nu har vi inga hakparenteser när vi använder ArrayList . Istället använder vi metoderna get , set och add . – Jag har märkt det. Men det är fortfarande väldigt likt.

6 Diego, ArrayList-uppgifter

- Gör du ingenting igen? Du är en robot, eller hur? Robotar är alltid upptagna med något. Här är några uppgifter för att hålla dig uppe. Men låt oss börja med ett par tips. - Tips 1: En lista betyder oftast en ArrayList . - Tips 2: En sträng betyder typen String . - Tips 3: Att skapa en lista med strängar betyder oftast ArrayList<String> list = new ArrayList<String>();
Uppgifter
1 Uppgift 1. 5 olika strängar i en lista
1. Skapa en lista med strängar.
2. Lägg till 5 olika strängar till listan.
3. Visa storleken på skärmen.
4. Visa innehållet i listan på skärmen. Varje värde ska vara på en ny rad. Använd en slinga.
2 Uppgift 2. 5 rader: «101», «102», «103», «104», «105»
1. Skapa en lista med strängar.
2. Lägg till 5 strängar till listan. «101», «102», «103», «104», «105».
3. Ta bort den första, den mellersta och den sista.
4. Visa innehållet i listan på skärmen. Varje värde ska vara på en ny rad. Använd en slinga.
5. Visa storleken på skärmen. (Efter att ha raderat en post ändras indexen för andra poster. Om vi ​​till exempel tar bort det första elementet blir det andra det första).
3 Uppgift 3. 5 rader i omvänd ordning
1. Skapa en lista med strängar.
2. Läs 5 strängar från tangentbordet och lägg sedan till dem i listan.
3. Ordna dem i omvänd ordning.
4. Visa innehållet i listan på skärmen. Varje värde ska vara på en ny rad. Använd en slinga.
4

Uppgift 4. Lägg till 5 strängar i början av listan
1. Skapa en lista med strängar.
2. Läs från klaviaturen 5 strängar. Lägg till dessa strängar i början av listan, inte till slutet.
3. Visa innehållet i listan på skärmen. Varje värde ska vara på en ny rad. Använd en slinga.

5 Uppgift 5. Ta bort den sista strängen och lägg till den i början av listan
1. Skapa en lista med strängar.
2. Läs från klaviaturen 5 strängar. Lägg till dessa strängar i listan.
3. Ta bort den sista strängen och lägg till den i början av listan. Upprepa denna åtgärd 13 gånger.
4. Visa innehållet i listan på skärmen. Varje värde ska vara på en ny rad. Använd en slinga.

7 Risha, Generics

- Nu, ett annat fantastiskt ämne. – Den här dagen är full av överraskningar. Det är som en riktig födelsedag. – Idag ska jag berätta vad generika är. Generika är typer som har parametrar. I Java låter containerklasser dig ange typer av deras interna objekt . – När vi deklarerar en generisk variabel anger vi två typer istället för en: typen av variabeln och typen av data som lagras i variabeln. Ett bra exempel på detta är ArrayList. När vi skapar ett nytt objekt/variabel av typen ArrayList är det också bra att ange vilken typ av värden som ska lagras i listan. Old Level 07 - 19– Det låter spännande. Jag älskade särskilt det du sa om vilken typ som helst. – Det verkar bara vara bra. Faktum är att om i en metod strängar placeras i en ArrayList, och i den andra metoden du arbetar med dess innehåll och förväntar dig att det bara kommer att finnas siffror, kommer programmet att krascha. - Jag förstår. Än så länge kommer vi inte att skapa våra egna klasser med typparametrar, vi ska lära oss att använda klasser skrivna av Java-skapare. - Får jag använda vilken klass som helst som typparameter, även den som jag har skrivit? – Ja, vilken typ som helst, utom primitiva. Alla klassparametrar måste ärvas från klassen Object. - Så jag kan väl inte skriva ArrayList<int> ? - Det kan du inte. Men Java-utvecklare har skrivit för primitiva typer sina icke-primitiva analoger - klasser som ärvts frånObjekt . Så här ser det ut: Gammal nivå 07 - 20- Primitiva typer och analoga klasser (omslagsklasser) kan enkelt tilldelas varandra: Old Level 07 - 21- Bra. Då antar jag att jag kommer att använda ArrayList oftare.

8 Risha, exempel på ArrayList, Generics

Old Level 07 - 22- Nu ska jag ge dig riktigt användbara saker. Här är några praktiska exempel för att arbeta med ArrayList och Generics: - Exempel 1. Old Level 07 - 23- Exempel 2. Old Level 07 - 24- Exempel 3. Old Level 07 - 25- Exempel 4. Old Level 07 - 26- Exempel 5. Old Level 07 - 27- Fantastiskt! Så, Diego kommer att ge mig en massa liknande uppgifter nu, eller hur? - Japp!

9 Diego, Lista<T> uppgifter

– Äntligen är du fri. Jag är trött på att ha dessa uppgifter i åtanke för dig. Här är ett par till för att hålla dig uppdaterad:
Ytterligare uppgifter att göra i Intellij Idea
1 1. Tre matriser
1. Läs från tangentbordet 20 nummer, spara dem i en lista och sortera dem sedan i tre andra listor:
Lista 1 lagrar nummer delbara med 3 ( x%3==0 )
Lista 2 lagrar nummer som är delbara med 2 ( x%2==0 )
Lista 3 lagrar resten av siffrorna.
Siffrorna som är delbara med 3 och 2 samtidigt (till exempel 6) tillhör båda listorna – lista 1 och lista 2.
2. Metoden printList() ska visa varje element i listan på en ny rad.
3. Använd metoden printList() för att visa dessa tre listor på skärmen. Först ska listan 1 visas, sedan lista 2, efter den listan 3.
2 2. 5 ord i omvänd ordning
Läs från tangentbordet 5 ord. Lägg till dem i en stränglista och visa dem på skärmen i omvänd ordning.
3 3. Ordet «här»
1. Skapa en lista med orden «stoppa», «titta», «lyssna».
2. Lägg till en sträng som innehåller «här» efter varje ord.
3. Visa resultatet. Varje element i listan ska vara på en ny rad. Använd "för" loop.
4 4. Bokstäverna «r» och «l»
1. Skapa en lista med ord/strängar, fyll den med vad du vill.
2. Metoden fix() bör:
2.1. ta bort alla ord som innehåller bokstaven «r» från listan över strängar
2.2. dubbla alla ord som innehåller bokstaven «l».
2.3. lämna ordet oförändrat om det innehåller både bokstäverna «r» och «l».
2.4. gör inget med andra ord.

Exempel: rosvid
lyra
ek
Utdata


:
pil
pil
lyra
ek
5 5. Duplicera orden
1. Läs från tangentbordet 10 ord/strängar, lägg till dem i en stränglista.
2. Metoden doubleValues ​​ska duplicera ord enligt mönstret:
a,b,c → a,a,b,b,c,c.
3. Visa resultatet. Varje element i listan ska vara på en ny rad. Använd "för" loop.

10 Professor

Old Level 07 - 28– Jag hittade mina underbara föreläsningar! Så idag får du den mest värdefulla kunskapen i arrayer och listor. Här är de: Tips om ArrayList i Java

11 Julio

- Hej, Amigo! Jag är glad att du har klarat allt detta - du förtjänar en belöning:

12 kapten ekorrar

- Hej, soldat! - God morgon herrn! - Jag har fantastiska nyheter till dig. Här är en snabb kontroll för att stärka dina färdigheter. Gör det varje dag, och du kommer att förbättra dina färdigheter riktigt snabbt. Uppgifter är speciellt utformade för att göra i Intellij IDEA.
Ytterligare uppgifter att göra i Intellij Idea
1 1. Visa siffror i omvänd ordning
Läs från tangentbordet 10 siffror och fyll listan med dem.
Visa siffrorna på skärmen i omvänd ordning. Använd slingan.
2 2. Flytta första M raderna till slutet av listan
Läs från tangentbordet 2 siffror: N och M .
Läs från tangentbordets N- strängar och fyll en lista med dem.
Flytta första M raderna till slutet av listan
Visa listan på skärmen. Varje värde ska vara på en ny rad.
3 3. Största och minsta nummer i en matris
Skapa en matris med 20 nummer.
Fyll den med siffror som läses från tangentbordet.
Hitta det största och minsta antalet i en matris.
Visa de största och minsta siffrorna på skärmen åtskilda av ett mellanslag.
4 4. Läs strängar från tangentbordet tills användaren anger strängen "slut"
Skapa en lista med strängar.
Läs från tangentbordssträngarna (vad du vill), lägg till dem i listan.
Läs strängar från tangentbordet tills användaren anger strängen "slut". "slut" ska utelämnas.
Visa strängarna på skärmen. Varje sträng ska vara på en ny rad.
5 5. Bang!
Skriv ett program som räknar ner från 30 till 0 och visar «Bang!» i slutet. Programmet bör minska antalet 10 gånger per sekund. Använd funktionen nedan för att infoga en fördröjning:
Thread.sleep(100); //fördröjning på en tiondels sekund.
Exempel:
30
29

1
0
Bang!
6 6. Familj
Skapa en klass Människan med fälten: Strängnamn , booleskt kön , int ålder , Människofader , Människomor . Skapa 9 föremål av mänsklig klass och fyll dem på ett sådant sätt att du får två farfäder, två mormödrar, en pappa, en mamma och tre barn. Visa objekten på skärmen på skärmen.
Tips:
Om du skriver din metod String toString() i klassen Human, kommer den att användas för att visa ett objekt.
Exempel:
Namn: Anna, kön: kvinna, ålder: 21, pappa: Paul, mamma: Kate
Namn: Kate, kön: kvinna, ålder: 55
Namn: Ian, kön: man, ålder: 2, pappa: Michael, mamma: Anna
7 7. Flytta en statisk modifierare
Flytta en statisk modifierare så att programmet kompilerar.
– De uppgifterna var för greener. Jag lade till bonusuppgifter av högre komplexitet. Endast för toppvapen.
Bonusuppgifter
1 1. Programmet kompilerar och körs inte. Fixa det.
Uppgift: Läs kattdata från tangentbordet och visa dem på skärmen.
Exempel:
Kattens namn är Jinx, åldern är 6, vikten är 5, svansen = 22
Kattens namnet är Maisy, åldern är 8, vikten är 7, svansen = 20
2 2. Lägg till ny funktionalitet i programmet.
Gammal uppgift: Programmet läser strängar tills användaren anger en tom rad genom att trycka på enter. Sedan konverterar den små bokstäver till versaler (mamma förvandlas till MOM) och visar dem på skärmen.
Ny uppgift: Programmet ska läsa strängar tills användaren anger en tom rad genom att trycka på enter. Programmet bygger sedan upp en ny lista. Om strängen har ett jämnt antal tecken dupliceras strängen, om det är udda nummer tredubblas strängen.
Exempelinmatning:
Cat
Cats
Me
Exempelutdata:
Cat Cat Cats
Cats Cats
Me Me
3 3. Att lära sig och öva på algoritm.
Läs från tangentbordet 20 siffror och visa dem i fallande ordning.
Kommentarer
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION