CodeGym/Java блог/Случаен/Старо ниво 07
John Squirrels
Ниво
San Francisco

Старо ниво 07

Публикувано в групата

Информационни технологии

Старо ниво 07 - 1Компютърната революция, започнала в края на 20-ти век, доведе до създаването на интернет (мрежата) през 90-те години. И това беше началото на още по-голяма революция. Ефектът от създаването на Интернет е като индустриализацията. Но най-вкусното е, че този процес току-що започна.

Нов свят

Количеството на сайта е над 200 мorона. 3 мorарда интернет потребители там. Интернет-търгове, уеб-сайтове, онлайн магазини, интернет-услуги. Индустрията на информационните технологии нараства с 20%-30% годишно. Това са чудовищни ​​темпове. И продължава да расте. През последните 10 години в Сorконовата долина (основният център на високотехнологичната индустрия в света) на всеки 2 месеца се създава компания, която впоследствие струва мorарди долари. Да не говорим за такива интернет звезди като Facebook (220 мorарда долара), Amazon (140 мorарда долара) и Google (350 мorарда долара). Всички тези компании нямаше да се появят, ако нямаше Интернет. Всичко това води до голямо търсене на IT-специалисти. Световната високотехнологична индустрия изисква: софтуерни разработчици, дизайнери, QA тестери, архитекти, мениджъри, системни администратори и други специалисти.

Хубаво е да си IT специалист

Старо ниво 07 - 2Ако сте IT-специалист, това е златен момент за вас. Можете да работите за голяма компания и да живеете в малък град or да работите за чуждестранна компания. Може да печелите двойно по-малко, отколкото в ЕС, например, но ще получавате 3-10 пъти повече, отколкото на местния пазар на труда. Колкото по-малък е градът, толкова по-голяма е разликата. Ще получите ценен опит, добри пари и светло бъдеще. Понякога ще ходите в командировки до офиса на вашия работодател. И ако много ви харесва, може да се преместите там. Надигащ се прorв повдига всички лодки. Защо няма да има такава лодка, която е в точното време и на точното място? Това също е изкуство.

Достигнахте ново ниво

Ниво 7

Старо ниво 07 - 3

1 Ели, масиви

- Хей, Амиго! - Какво има, Ели? - Днес ще ви разкажа за една нова интересна същност - масивите. Масивът е специален тип данни, който може да съхранява повече от една стойност. Старо ниво 07 - 4- Ще започна с аналогия. Нека да сравним обикновена къща и висока къща. Една къща се обитава от едно семейство, докато високата сграда е разделена на апартаменти. Трябва да посочите уникалния address, за да напишете писмо до семейство, което живее в къщата. За семейство, което живее в апартамент, трябва да посочите допълнително номера на апартамента. - Да, това е ясно. - И така, променливата масив е като висока сграда. Можете да съхранявате няколко стойности в него. Такава променлива има някои апартаменти (клетки). Всеки от апартаментите може да бъде достъпен чрез своя номер (индекс).За да направите това, след името на променливата в квадратни скоби трябва да посочите индекса на клетката, до която сте имали достъп. Това е доста просто. - Надявам се. - Променлива масив (висока сграда) може да бъде от всяHowъв тип, така че просто трябва да напишете TypeName[] variable_nameinstead of TypeName variable_name. - Ето примери Howво можете да правите с масиви: Старо ниво 07 - 5- Колко вълнуващо! - Променлива в масива се нуждае от допълнителна инициализация. - Защо така? - Обичайната променлива е готова за използване веднага след нейната декларация. Що се отнася до масивите, това е малко по-сложно: - Първо, трябва да създадете контейнер от N елемента и след това можете да поставите стойности в него. Старо ниво 07 - 6- да Сега става по-ясно. - Основи за масивите :
  1. Масивът се състои от множество клетки.
  2. Достъпът до всяка клетка се осъществява чрез посочване на нейния номер.
  3. Всички клетки са от един и същи тип.
  4. В масив от n елемента клетките имат индекси 0,1,2,...,n-1. В масива няма клетка с индекс n.
  5. Първоначалната стойност за всички клетки е нула, за примитивни типове – 0, 0.0 за дробни, false – за булев тип, точно Howто при простите неинициализирани променливи.
  6. Списъкът String[] е просто декларация на променлива. Първо трябва да създадете масив (контейнер) и да го поставите в променливата, след което да го използвате. Вижте примера по-долу.
  7. Когато създавате обектен масив (контейнер), е необходимо да посочите неговата дължина (колко клетки ще има). За да направите това, трябва да напишете команда: TypeName е типът стойности, които ще се съхраняват в клетките на масива.new TypeName[n];
Старо ниво 07 - 7- Примери: Старо ниво 07 - 8

2 Риша, Подреждане на масиви в паметта

- Хей, Амиго! Нека ви покажа How работи всичко в паметта: Старо ниво 07 - 9- И Howво е това 345? - Всъщност го извадих от въздуха, но обикновено това е addressът на низа, съдържащ думата «Стоп». - Що се отнася до масивите, това е малко по-сложно:
Старо ниво 07 - 10
- 155,166,177 също ли са числа, извадени от шапка, които представляват address на низовете отдясно? - да Хубаво е, че се досетихте. Обърнете внимание, че на втората снимка има допълнителен обект - масив от 10 клетки. - Всичко е ясно, благодаря. Една снимка струва повече от хиляда думи. Благодаря ти, Риша.

3 Риша, Примери за масиви Array

- Искам да ви дам няколко примера за интересни неща, които можете да правите с масиви: Пример 1. Старо ниво 07 - 11Пример 2. Старо ниво 07 - 12Пример 3. Старо ниво 07 - 13Пример 4. Старо ниво 07 - 14Пример 5. Старо ниво 07 - 15

4 Диего, Задачи за създаване и използване на масиви

- Хей, Амиго! Ето няколко задачи за теб, приятелю:
Задачи
1 1. Максимум масив от 20 числа
1. В метода initializeArray() :
1.1. Създаване на масив от 20 числа
1.2. Прочетете от клавиатурата 20 числа и попълнете масива с тях
2. Методът max(int[] array) трябва да намери максималния брой елементи на масива

2

2. Масив от низове в обратен ред
1. Създайте масив от 10 низа.
2. Прочетете от клавиатурата 8 низа и ги запазете в масива.
3. Изведете на екрана съдържанието на целия масив (10 елемента) в обратен ред. Всеки елемент трябва да бъде на нов ред.

3 3. 2 масива
1. Създайте един масив от 10 низа.
2. Създайте друг масив от 10 числа.
3. Прочетете от клавиатурата 10 низа и попълнете с тях низовия масив.
4. Запишете дължината на низ от всяка клетка от масива от низове в клетката от масива с числа със същия индекс. Показване на екрана на съдържанието на масива от числа. Всяка стойност трябва да е на нов ред.
4 4. Масив от числа в обратен ред
1. Създайте масив от 10 числа.
2. Прочетете от клавиатурата 10 числа и ги запишете в масива.
3. Подредете елементите на масива в обратен ред.
4. Покажете на екрана резултата. Всяка стойност трябва да е на нов ред.
5 5. Един голям и два малки масива
1. Създайте масив от 20 числа.
2. Прочетете от клавиатурата 20 числа и попълнете масива с тях.
3. Създайте два масива от по 10 числа.
4. Копирайте числата от големия масив в два малки масива: половината от числата в първия масив, другата половина във втория.
5. Покажете на екрана втория малък масив. Всяка стойност трябва да е на нов ред.

5 Ели, ArrayList срещу Array

- Аз съм. - Здравей, Ели! - Днес имаме нова вълнуваща тема! Сега ще ви разкажа за един интересен нов клас, ArrayList . - О, нов клас? Еха! Какво прави? - Нека започна с малко предистория. Програмистите не харесаха едно свойство на масива: невъзможно е да се промени неговият размер. Какво да направите, ако искате да съхраните още три записа в масива, но има само едно свободно място? - Единственото решение на проблема с липсата на пространство беше да се създаде много голям масив, който съдържа всички елементи. Но това често води до неефективно използване на паметта. Например, ако в 99% от живота на масива трябва да съхранявате само 3 елемента в масива, а само в 1% - 100 елемента, ще трябва да създадете масив от 100 елемента. - И Howво измислиха програмистите? - Те написаха класа ArrayList , който вършеше същата работа като масива, но можеше да променя размера си. - Интересен ход. И How го направиха? - Всеки обект ArrayList съхранява обикновен масив от елементи вътре. Когато четете елементи от ArrayList , той ги чете от вътрешния си масив. Когато пишете елементите, той ги записва във вътрешния масив. Сравнение: Старо ниво 07 - 16- И така, Howво е предимството на ArrayList? Що се отнася до мен, codeът стана по-дълъг. - Първо, ArrayList поддържа някои допълнителни функции, които не са налични в масива, които програмистите използват много често. Например,вмъкнете елементи и ги изтрийте от средата на масива, без да оставяте дупки. - Второ, ArrayList може да променя размера си . Когато ArrayList трябва да съхрани още един елемент във вътрешния си масив и няма свободно място, вътре в ArrayList се случва следното :
  1. създава се още един масив, два пъти по-голям.
  2. всички елементи от стария масив се копират в новия масив.
  3. нов масив се съхранява във вътрешна променлива на обекта ArrayList, старият масив се обявява за боклук (просто вече не съхраняваме неговата референция).
Старо ниво 07 - 17И How се работи с ArrayList? - Всъщност, по същия начин, Howто с масив. Вижте тук. Нека сравним работата с ArrayList и работата с масив. Като пример, нека решим следната задача: « Програмата трябва да прочете от клавиатурата 10 низа и да ги покаже на екрана в обратен ред ». - Проверете това: Старо ниво 07 - 18- Нарисувах еквивалентни действия в двете колони с един цвят. - Изглежда различно, но ако се вгледате по-отблизо, всичко е същото. - да Сега нямаме квадратни скоби, когато използваме ArrayList . Вместо това използваме методите get , set и add . - Забелязал съм го. Но все още е много подобно.

6 задачи Diego, ArrayList

- Пак ли не правиш нищо? Ти си робот, нали? Роботите винаги са заети с нещо. Ето някои задачи, за да сте в крак. Но нека започнем с няколко съвета. - Съвет 1: Списък най-често означава ArrayList . - Съвет 2: Низ означава типа String . - Съвет 3: Създаването на списък от низове най-често означава ArrayList<String> list = new ArrayList<String>();
Задачи
1 Задача 1. 5 различни низа в списък
1. Създайте списък от низове.
2. Добавете 5 различни низа към списъка.
3. Покажете на екрана неговия размер.
4. Покажете на екрана съдържанието на списъка. Всяка стойност трябва да е на нов ред. Използвайте примка.
2 Задача 2. 5 реда: «101», «102», «103», «104», «105»
1. Създайте списък от низове.
2. Добавете 5 низа към списъка. «101», «102», «103», «104», «105».
3. Изтрийте първия, средния и последния.
4. Покажете на екрана съдържанието на списъка. Всяка стойност трябва да е на нов ред. Използвайте примка.
5. Покажете на екрана неговия размер. (След изтриване на един запис, индексите на други записи се променят. Например, ако изтрием първия елемент, вторият става първи).
3 Задача 3. 5 реда в обратен ред
1. Създайте списък от низове.
2. Прочетете 5 низа от клавиатурата, след което ги добавете към списъка.
3. Подредете ги в обратен ред.
4. Покажете на екрана съдържанието на списъка. Всяка стойност трябва да е на нов ред. Използвайте примка.
4

Задача 4. Добавете 5 низа в началото на списъка
1. Създайте списък от низове.
2. Прочетете от клавиатурата 5 низа. Добавете тези низове в началото на списъка, а не в края.
3. Покажете на екрана съдържанието на списъка. Всяка стойност трябва да е на нов ред. Използвайте примка.

5 Задача 5. Изтрийте последния низ и го добавете в началото на списъка
1. Създайте списък с низове.
2. Прочетете от клавиатурата 5 низа. Добавете тези низове към списъка.
3. Изтрийте последния низ и го добавете в началото на списъка. Повторете това действие 13 пъти.
4. Покажете на екрана съдържанието на списъка. Всяка стойност трябва да е на нов ред. Използвайте примка.

7 Risha, Generics

- Сега, още една страхотна тема. - Този ден е пълен с изненади. Това е като истински рожден ден. - Днес ще ви разкажа Howво е Generics. Генериците са типове, които имат параметри. В Java класовете контейнери ви позволяват да укажете типове на техните вътрешни обекти . - Когато декларираме обща променлива, ние указваме два типа instead of един: типа на променливата и типа на данните, съхранявани в променливата. Добър пример за това е ArrayList. Когато създаваме нов обект/променлива от тип ArrayList, също е добре да посочим типа на стойностите, които да се съхраняват в списъка. Старо ниво 07 - 19- Звучи вълнуващо. Особено ми хареса това, което каза за всеки тип. - Просто изглежда добре. Всъщност, ако в единия метод низовете се поставят в ArrayList, а в другия метод работите със съдържанието му и очаквате да има само числа, програмата ще се срине. - Виждам. - Засега няма да създаваме наши собствени класове с типови параметри, ще се научим да използваме класове, написани от създатели на Java. - Мога ли да използвам всеки клас като тип параметър, дори този, който съм написал? - Да, всяHowъв тип, освен примитивните. Всички параметри на класа трябва да бъдат наследени от класа Object. - Така че не мога да напиша ArrayList<int> , нали? - Не можеш. Но разработчиците на Java са написали за примитивни типове техните непримитивни аналози - класове, наследени отОбект . Ето How изглежда: Старо ниво 07 - 20- Примитивните типове и аналоговите класове (класове обвивки) могат лесно да бъдат присвоени един на друг: Старо ниво 07 - 21- Добре. Тогава предполагам, че ще използвам ArrayList по-често.

8 Риша, Примери за ArrayList, Generics

Старо ниво 07 - 22- Сега ще ти дам наистина полезни неща. Ето няколко удобни примера за работа с ArrayList и Generics: - Пример 1. Старо ниво 07 - 23- Пример 2. Старо ниво 07 - 24- Пример 3. Старо ниво 07 - 25- Пример 4. Старо ниво 07 - 26- Пример 5. Старо ниво 07 - 27- Страхотно! И така, Диего ще ми даде куп подобни задачи сега, нали? - Да!

9 Диего, списък<T> задачи

- Най-накрая си свободен. Омръзна ми да ти ги наумвам тези задачи. Ето още няколко, за да сте в крак:
Допълнителни задачи за изпълнение в Intellij Idea
1 1. Три масива
1. Прочетете от клавиатурата 20 числа, запазете ги в списък, след което ги сортирайте в три други списъка:
Списък 1 съхранява числа, делими на 3 ( x%3==0 )
Списък 2 съхранява числа, делими на 2 ( x%2==0 )
Списък 3 съхранява останалите числа.
Числата, които се делят едновременно на 3 и 2 (например 6) принадлежат към двата списъка – списък 1 и списък 2.
2. Методът printList() трябва да извежда всеки елемент от списъка на нов ред.
3. Използвайте метода printList() , за да изведете на екрана тези три списъка. Първо трябва да се покаже списък 1, след това списък 2, след него списък 3.
2 2. 5 думи в обратен ред
Прочетете от клавиатурата 5 думи. Добавете ги в списък с низове и ги покажете на екрана в обратен ред.
3 3. Думата «тук»
1. Създайте списък с думите «спри», «виж», «слушай».
2. Добавете низ, съдържащ «тук» след всяка дума.
3. Покажете резултата. Всеки елемент от списъка трябва да бъде на нов ред. Използвайте цикъл „за“.
4 4. Букви «r» и «l»
1. Създайте списък с думи/низове, попълнете го с Howвото искате.
2. Методът fix() трябва:
2.1. изтрийте всички думи, съдържащи буквата «r» от списъка с низове
2.2. удвоете всички думи, съдържащи буквата «l».
2.3. оставете думата непроменена, ако съдържа и двете букви «r» и «l».
2.4. не правете нищо с други думи.

Пример:
роза
върба
лира
дъб

Изходни данни:
върба
върба
лира
дъб
5 5. Дублирайте думите
1. Прочетете от клавиатурата 10 думи/низа, добавете ги в списък с низове.
2. Методът doubleValues ​​трябва да дублира думи според модела:
a,b,c → a,a,b,b,c,c.
3. Покажете резултата. Всеки елемент от списъка трябва да бъде на нов ред. Използвайте цикъл „за“.

10 професор

Старо ниво 07 - 28- Намерих прекрасните си лекции! Така че днес ще придобиете най-ценните знания за масиви и списъци. Ето ги: Съвети за ArrayList в Java

11 Хулио

- Хей, Амиго! Радвам се, че си се справил с всичко това - заслужаваш награда:

12 Капитан Катерици

- Здравей, войнико! - Добро утро, сър! - Имам страхотни новини за вас. Ето една бърза проверка, за да затвърдите уменията си. Правете го всеки ден и ще подобрите уменията си много бързо. Задачите са специално проектирани за изпълнение в Intellij IDEA.
Допълнителни задачи за изпълнение в Intellij Idea
1 1. Показване на числата в обратен ред
Прочетете от клавиатурата 10 числа и попълнете списъка с тях.
Изведете на екрана числата в обратен ред. Използвайте примката.
2 2. Преместете първите M реда в края на списъка
Прочетете от клавиатурата 2 числа: N и M .
Прочетете от клавиатурата N низа и попълнете списък с тях.
Преместване на първите M реда в края на списъка
Показване на екрана на списъка. Всяка стойност трябва да е на нов ред.
3 3. Най-голямо и най-малко число в масив
Създайте масив от 20 числа.
Попълнете го с числа, които се четат от клавиатурата.
Намерете най-голямото и най-малкото число в масив.
Показвайте на екрана най-големите и най-малките числа, разделени с интервал.
4 4. Четете низове от клавиатурата, докато потребителят въведе низа „край“
Създайте списък с низове.
Прочетете от клавиатурата низове (Howвито искате), добавете ги към списъка.
Четете низове от клавиатурата, докато потребителят въведе низа „край“. „край“ трябва да се пропусне.
Покажете на екрана низовете. Всеки низ трябва да е на нов ред.
5 5. Бам!
Напишете програма, която отброява от 30 до 0 и извежда „Bang!“ накрая. Програмата трябва да намалява броя 10 пъти в секунда. Използвайте функцията по-долу, за да вмъкнете забавяне:
Thread.sleep(100); //закъснение от една десета от секундата.
Пример:
30
29

1
0
Бам!
6 6. Семейство
Създайте клас Human с полетата: Име на низ , булев пол , int възраст , Човешки баща , Човешка майка . Създайте 9 обекта от клас Човек и ги напълнете по такъв начин, че да получите двама дядовци, две баби, баща, майка и три деца. Показвайте на екрана обектите на екрана.
Съвет:
Ако напишете своя метод String toString() в класа Human, тогава той ще се използва за показване на обект.
Примерен изход:
Име: Анна, пол: жена, възраст: 21, баща: Пол, майка: Кейт
Име: Кейт, пол: жена, възраст: 55
Име: Иън, пол: мъж, възраст: 2, баща: Майкъл, майка: Анна
7 7. Преместете един статичен модификатор
Преместете един статичен модификатор, така че програмата да се компorра.
- Тези задачи бяха за зелените. Добавих бонус задачи с по-висока сложност. Само за топ оръжия.
Бонус задачи
1 1. Програмата не се компorра и не стартира. Оправи го.
Задача: Прочетете от клавиатурата данните за котката и ги покажете на екрана.
Пример:
Името на котката е Джинкс, възрастта е 6, теглото е 5, опашката = 22
Името на котката е Мейзи, възрастта е 8, теглото е 7, опашката = 20
2 2. Добавете нова функционалност към програмата.
Стара задача: Програмата чете низове, докато потребителят не въведе празен ред, като натисне enter. След това преобразува малки букви в главни (Мама се превръща в МАМА) и ги показва на екрана.
Нова задача: Програмата трябва да чете низове, докато потребителят не въведе празен ред, като натисне enter. След това програмата изгражда нов списък. Ако низът има четен брой символи, низът се дублира, ако е нечетен, низът се утроява.
Пример за въвеждане:
Cat
Cats
Me
Примерен изход:
Cat Cat Cat
Cats Cats
Me Me
3 3. Разучаване и практикуване на алгоритъм.
Прочетете от клавиатурата 20 числа и ги покажете в низходящ ред.
Коментари
  • Популярен
  • Нов
  • Стар
Трябва да сте влезли, за да оставите коментар
Тази страница все още няма коментари