Skip to content

suoapvs/GoIT-Java

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

28 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

GoIt Java

Java Core Homework

Input: array with size = 10 can be of one of two data types: int and double. Calculate:

  • sum
  • min/max
  • max positive
  • multiplication
  • modulus of first and last element
  • second largest element

As a result you should have methods with following names :

  • sum(int array[]), sum(double[])
  • min(int array[]), min(double[])
  • max(int array[]), max(double[])
  • maxPositive(int array[]), maxPositive(double array[]),
  • multiplication (int array[]), multiplication (double[])
  • modulus(int array[]), modulus(double[])
  • secondLargest(int array[]), secondLargest(double[])

Continue with BANK example 2.1 Write method which withdraws money from account and takes commission 5% of the transaction. Print OK + commission + balance after withdrawal. Print NO is withdrawal is not possible.

Example

Input Input
balance = 100
withdrawal = 10
balance = 100
withdrawal = 99
Output Output
OK 0.5 89.5 NO

You need to write method which withdraw money of particular account owner if he/she can. Print name + NO of withdrawal fs not possible and name + sum of withdrawal + balance after withdrawal in other case. Commission is 5% for all cases.

Example

Input Input
int[] balances = {1200, 250, 2000, 500, 3200};
String[] ownerNames = {"Jane", "Ann", "Jack", "Oww", "Lane"};

String ownerName = Ann;
double withdrawal = 100;
int[] balances = {1200, 250, 2000, 500, 3200};
String[] ownerNames = {"Jane", "Ann", "Jack", "Oww", "Lane"};

String ownerName = Oww;
double withdrawal = 490;
Output Output
Ann 100 145 Oww NO

You need to write method which will fund (ΠΏΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅) balance of particular user. Print name + balance after funding.

Input
int[] balances = {1200, 250, 2000, 500, 3200};

String[] ownerNames = {"Jane", "Ann", "Jack", "Oww", "Lane"};

String ownerName = Oww;
double withdrawal = 100;
Output
Oww 600

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ sing ΠΊ классу Bird, ΠΏΠΎΡ‚ΠΎΠΌ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚Π΅ основной ΠΌΠ΅Ρ‚ΠΎΠ΄ соотвСтствСнно, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΊΠΎΠ΄ Π²Ρ‹Π²Π΅Π» ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ тСкст:

 I am walking
 I am flying
 I am singing
 I am Bird

ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ класс с Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Arithmetic с ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ add, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Ρ†Π΅Π»Ρ‹Π΅ числа ΠΊΠ°ΠΊ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Ρ‚ΠΈΠΏΠ° integer, которая Π΅ΡΡ‚ΡŒ ΠΈΡ… суммой.

ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ класс Adder, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ наслСдуСтся ΠΎΡ‚ класса Arithmetic. Π£ класса Adder Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ check, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ сравниваСт 2 Π½ΠΎΠΌΠ΅Ρ€Π° ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ true, Ссли Π°>=b ΠΈ false Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… случаях.

Π‘ΠΈΠ³Π½Π°Ρ‚ΡƒΡ€Π° ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²:

int add(Integer a, Integer b)
boolean check(Integer a, Integer b)

Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ структуру классов.

Класс Course с полями:

 Date startDate,
 String name,
 int hoursDuration,
 String teacherName.

Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ 2 конструктора с Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ

 startDate, name;
 hourseDuration, name, teacherName.

Класс Student с полями:

 String firstName,
 String lastName,
 int group,
 Course[] coursesTaken,
 int age.

Π‘ 2 конструкторами с Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ

 firstName, lastName, group;
 lastName, coursesTaken.

CollegeStudent унаслСдован ΠΎΡ‚ Student. Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля:

String collegeName, int rating, long id.

Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ 3 конструктора: 2 Ρ‚Π°ΠΊΠΈΡ… ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ Π² Student and ΠΎΠ΄ΠΈΠ½ с Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ - всСми полями класса.

Class SpecialStudent унаслСдован ΠΎΡ‚ CollegeStudent. Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля:

long secretKey, String email.

Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ 3 конструктора: 2 Ρ‚Π°ΠΊΠΈΡ… ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ Π² CollegeStudent ΠΈ ΠΎΠ΄ΠΈΠ½ с Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠΌ secretKey.

Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ get-, set-ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ для всСх ΠΏΠΎΠ»Π΅ΠΉ ΠΈ сдСлайтС ΠΈΡ… private согласно ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ°ΠΌ ООП. Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ 5 ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² класса Course. Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π΄Ρ€ΡƒΠ³ΠΈΡ… классов, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ всС конструкторы. Π£ вас Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ 13 ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π² классС Solution.

Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ класс User со ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌΠΈ полями:

 String name,
 int balance,
 int monthsOfEmployment,
 String companyName,
 int salary,
 String currency.

Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ get-, set-ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΈ конструктор с Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ - всСми полями класса. ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹:

 void paySalary() - добавляСт Π·Π°Ρ€Π°Π±ΠΎΡ‚Π½ΡƒΡŽ ΠΏΠ»Π°Ρ‚Ρƒ ΠΊ балансу ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ
 withdraw(int summ) - снимаСт дСньги с баланса с комиссиСй 5%, Ссли сумма < 1000 ΠΈ комиссиСй 10% Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… случаях
 companyNameLength - вычисляСт Π΄Π»ΠΈΠ½Ρƒ имя ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ
 monthIncreaser(int addMonth) - ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ monthsOfEmployment Π½Π° addMonth

Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ структуру: Абстрактный класс Bank ΠΈ 3 класса, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΅Π³ΠΎ Ρ€Π°ΡΡˆΠΈΡ€ΡΡŽΡ‚: USBank, EUBank, ChinaBank.

Абстрактный класс Bank Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ поля:

long id
String bankCountry
Currency currency
int numberOfEmployees
double avrSalaryOfEmployee
long rating
long totalCapital

Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ get-,set-ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΈ конструктор с Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ - всСми полями. ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹:

abstract int getLimitOfWithdrawal()
abstract int getLimitOfFunding()
abstract int getMonthlyRate()
abstract int getCommission(int summ)
double moneyPaidMonthlyForSalary()

Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ структуру: Enum Currency.

Currency - это Enum с двумя значСниями: USD, EUR.

Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ структуру:

Класс User, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ банковской систСмы.

  • USBank:

  • Π»ΠΈΠΌΠΈΡ‚ снятия = 1000, Ссли Π²Π°Π»ΡŽΡ‚Π° - USD ΠΈ 1200, Ссли Π²Π°Π»ΡŽΡ‚Π° - EUR

  • Π»ΠΈΠΌΠΈΡ‚ пополнСния - 10000, Ссли EUR, ΠΈ Π½Π΅Ρ‚ Π»ΠΈΠΌΠΈΡ‚Π°, Ссли USD

  • мСсячная ставка - 1% Π½Π° USD ΠΈ 2% Π½Π° EUR

  • комиссия 5%, Ссли USD ΠΈ Π΄ΠΎ 1000, 7%, Ссли USD ΠΈ большС 1000

  • 6%, Ссли EUR ΠΈ Π΄ΠΎ 1000 ΠΈ 8%, Ссли EUR ΠΈ большС 1000

  • EUBank:

  • Π»ΠΈΠΌΠΈΡ‚ снятия = 2000, Ссли Π²Π°Π»ΡŽΡ‚Π° - USD ΠΈ 2200, Ссли EUR

  • Π»ΠΈΠΌΠΈΡ‚ пополнСния - 20000, Ссли EUR ΠΈ 10000, Ссли USD

  • мСсячная ставка - 0% Π½Π° USD ΠΈ 1% Π½Π° EUR

  • комиссия 5%, Ссли USD ΠΈ Π΄ΠΎ 1000, 7%, Ссли USD ΠΈ большС 1000

  • 2%, Ссли EUR ΠΈ Π΄ΠΎ 1000 ΠΈ 4%, Ссли EUR ΠΈ большС 1000

  • ChinaBank:

  • Π»ΠΈΠΌΠΈΡ‚ снятия = 100, Ссли Π²Π°Π»ΡŽΡ‚Π° - USD ΠΈ 150, Ссли EUR

  • Π»ΠΈΠΌΠΈΡ‚ пополнСния - 5000, Ссли EUR ΠΈ 10000, Ссли USD

  • мСсячная ставка - 1% Π½Π° USD ΠΈ 0% Π½Π° EUR

  • комиссия 3%, Ссли USD ΠΈ Π΄ΠΎ 1000, 5%, Ссли USD ΠΈ большС 1000

  • 10%, Ссли EUR ΠΈ Π΄ΠΎ 1000 ΠΈ 11%, Ссли EUR ΠΈ большС 1000

Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ структуру: Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ BankSystem ΠΈ Π΅Π³ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ BankSystemImpl.

Π’ классС User Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ поля:

long id
String name
double balance
int monthsOfEmployment
String companyName
int salary
Bank bank

Класс User Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ собствСнных ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ². Но ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠΆΠ°Π΅Ρ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ toString.

Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ структуру: Класс Main с ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ main, Π³Π΄Π΅ Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ 6 ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² класса User (2 - USBank, 2 - EUBank, 2 - ChinaBank).

Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ интСрфСйс BankSystem с ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ:

void withdrawOfUser(User user, int amount)
void fundUser(User user, int amount)
void transferMoney(User fromUser, User toUser, int amount)
void paySalary(User user)

ΠΈ Π΅Π³ΠΎ Ρ€Π΅Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ.

You need to following structure: abstarct class Bank and three classes that extends it: USBank, EUBank, ChinaBank. Enum Currency. Class User that represents User of our Bank System. Interface BankSystem and its implementation BankSystemImpl.

Create Main class with main method, where you should create 6 Users: 2 of USBank, 2 of EUBank and 2 of ChinaBank. Run four different operations with every User’s balance and print its objects to console.


Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Ρ‡Π°ΡΡ‚ΡŒ System, которая ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°ΠΉΡ‚ΠΈ ΠΊΠΎΠΌΠ½Π°Ρ‚Ρ‹ Π² отСлях для бронирования ΠΈ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΈΡ… Π² DataBase.

АрхитСктура ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ:

  • Класс Room, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ ΡΡƒΡ‰Π½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠΌΠ½Π°Ρ‚Ρ‹, которая ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² систСмС.
  • API интСрфСйс ΠΈ 3 Π΅Π³ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ.
  • DAO интСрфСйс ΠΈ Π΅Π³ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ.
  • Controller, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π»ΠΎΠ³ΠΈΠΊΡƒ.

Π’Π°ΠΊΠΆΠ΅ создайтС класс Main с ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ main, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚.

!!! Π‘Π½Π°Ρ‡Π°Π»Π° создайтС UML Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹, ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΡ‚ΠΎΠΌ ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΊΠΎΠ΄. !!!

Класс Room Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ поля:

long id
int price
int persons
Date dateAvailableFrom
String hotelName
String cityName

Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ get-,set-ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΈ конструктор с Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ - всСми полями.

Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Ρ‡Π°ΡΡ‚ΡŒ System, которая ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°ΠΉΡ‚ΠΈ ΠΊΠΎΠΌΠ½Π°Ρ‚Ρ‹ Π² отСлях для бронирования ΠΈ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΈΡ… Π² DataBase.

АрхитСктура ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ:

  • Класс Room, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ ΡΡƒΡ‰Π½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠΌΠ½Π°Ρ‚Ρ‹, которая ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² систСмС.
  • API интСрфСйс ΠΈ 3 Π΅Π³ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ.
  • DAO интСрфСйс ΠΈ Π΅Π³ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ.
  • Controller, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π»ΠΎΠ³ΠΈΠΊΡƒ.

Π’Π°ΠΊΠΆΠ΅ создайтС класс Main с ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ main, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚.

!!! Π‘Π½Π°Ρ‡Π°Π»Π° создайтС UML Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹, ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΡ‚ΠΎΠΌ ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΊΠΎΠ΄. !!!

ΠŸΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΈΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ equals ΠΈ hashCode (2 ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Room Ρ€Π°Π²Π½Ρ‹, ΠΊΠΎΠ³Π΄Π° поля price, persons ΠΈ cityName Ρ€Π°Π²Π½Ρ‹).

Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Ρ‡Π°ΡΡ‚ΡŒ System, которая ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°ΠΉΡ‚ΠΈ ΠΊΠΎΠΌΠ½Π°Ρ‚Ρ‹ Π² отСлях для бронирования ΠΈ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΈΡ… Π² DataBase.

АрхитСктура ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ:

  • Класс Room, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ ΡΡƒΡ‰Π½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠΌΠ½Π°Ρ‚Ρ‹, которая ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² систСмС.
  • API интСрфСйс ΠΈ 3 Π΅Π³ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ.
  • DAO интСрфСйс ΠΈ Π΅Π³ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ.
  • Controller, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π»ΠΎΠ³ΠΈΠΊΡƒ.

Π’Π°ΠΊΠΆΠ΅ создайтС класс Main с ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ main, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚.

!!! Π‘Π½Π°Ρ‡Π°Π»Π° создайтС UML Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹, ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΡ‚ΠΎΠΌ ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΊΠΎΠ΄. !!!

Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ API интСрфСйс с ΠΎΠ΄Π½ΠΈΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ Room[] findRooms(int price, int persons, String city, String hotel)

Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Ρ‡Π°ΡΡ‚ΡŒ System, которая ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°ΠΉΡ‚ΠΈ ΠΊΠΎΠΌΠ½Π°Ρ‚Ρ‹ Π² отСлях для бронирования ΠΈ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΈΡ… Π² DataBase.

АрхитСктура ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ:

  • Класс Room, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ ΡΡƒΡ‰Π½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠΌΠ½Π°Ρ‚Ρ‹, которая ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² систСмС.
  • API интСрфСйс ΠΈ 3 Π΅Π³ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ.
  • DAO интСрфСйс ΠΈ Π΅Π³ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ.
  • Controller, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π»ΠΎΠ³ΠΈΠΊΡƒ.

Π’Π°ΠΊΠΆΠ΅ создайтС класс Main с ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ main, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚.

!!! Π‘Π½Π°Ρ‡Π°Π»Π° создайтС UML Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹, ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΡ‚ΠΎΠΌ ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΊΠΎΠ΄. !!!

Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ 3 Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ API, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ:

  • BookingComAPI,
  • TripAdvisorAPI,
  • GoogleAPI.

Π’ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π΅ΡΡ‚ΡŒ глобальная пСрСмСнная Room[] rooms, которая Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° констуктором ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΏΡΡ‚ΡŒΡŽ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ Room.

Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Ρ‡Π°ΡΡ‚ΡŒ System, которая ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°ΠΉΡ‚ΠΈ ΠΊΠΎΠΌΠ½Π°Ρ‚Ρ‹ Π² отСлях для бронирования ΠΈ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΈΡ… Π² DataBase.

АрхитСктура ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ:

  • Класс Room, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ ΡΡƒΡ‰Π½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠΌΠ½Π°Ρ‚Ρ‹, которая ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² систСмС.
  • API интСрфСйс ΠΈ 3 Π΅Π³ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ.
  • DAO интСрфСйс ΠΈ Π΅Π³ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ.
  • Controller, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π»ΠΎΠ³ΠΈΠΊΡƒ.

Π’Π°ΠΊΠΆΠ΅ создайтС класс Main с ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ main, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚.

!!! Π‘Π½Π°Ρ‡Π°Π»Π° создайтС UML Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹, ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΡ‚ΠΎΠΌ ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΊΠΎΠ΄. !!!

Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ интСрфСйс DAO ΠΈ Π΅Π³ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ. ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ выводят Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, Π½Π°Π΄ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΎΠ½Π° ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½Π°.

Room save(Room room)
boolean delete(Room room)
Room update(Room room)
Room findById(long id)

Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Ρ‡Π°ΡΡ‚ΡŒ System, которая ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°ΠΉΡ‚ΠΈ ΠΊΠΎΠΌΠ½Π°Ρ‚Ρ‹ Π² отСлях для бронирования ΠΈ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΈΡ… Π² DataBase.

АрхитСктура ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ:

  • Класс Room, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ ΡΡƒΡ‰Π½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠΌΠ½Π°Ρ‚Ρ‹, которая ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² систСмС.
  • API интСрфСйс ΠΈ 3 Π΅Π³ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ.
  • DAO интСрфСйс ΠΈ Π΅Π³ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ.
  • Controller, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π»ΠΎΠ³ΠΈΠΊΡƒ.

Π’Π°ΠΊΠΆΠ΅ создайтС класс Main с ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ main, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚.

!!! Π‘Π½Π°Ρ‡Π°Π»Π° создайтС UML Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹, ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΡ‚ΠΎΠΌ ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΊΠΎΠ΄. !!!

Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ класс Controller, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π΅ΡΡ‚ΡŒ глобальная пСрСмСнная API apis[] = new API[3], которая содСрТит всС Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ интСрфСйса API. Π’Π°ΠΊΠΆΠ΅ Ρƒ Controller Π΅ΡΡ‚ΡŒ 2 ΠΌΠ΅Ρ‚ΠΎΠ΄Π°:

Room[] requestRooms(int price, int persons, String city, String hotel) -
ΠΈΡ‰Π΅Ρ‚ всС Π½ΠΎΠΌΠ΅Ρ€Π° с Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅ΠΌΡ‹ΠΌΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ.
Room[] check(API api1, API api2) -
ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, сколько ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Ρ… Π½ΠΎΠΌΠ΅Ρ€ΠΎΠ² Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ Π΄Π²Π΅ Ρ€Π°Π·Π½Ρ‹Π΅ API.

ВсС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ доступныС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ API для поиска. НайдСнныС Π½ΠΎΠΌΠ΅Ρ€Π° Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΡŽΡ‚ Π½ΠΎΠ²ΡƒΡŽ DB.

Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Ρ‡Π°ΡΡ‚ΡŒ System, которая ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°ΠΉΡ‚ΠΈ ΠΊΠΎΠΌΠ½Π°Ρ‚Ρ‹ Π² отСлях для бронирования ΠΈ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΈΡ… Π² DataBase.

АрхитСктура ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ:

  • Класс Room, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ ΡΡƒΡ‰Π½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠΌΠ½Π°Ρ‚Ρ‹, которая ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² систСмС.
  • API интСрфСйс ΠΈ 3 Π΅Π³ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ.
  • DAO интСрфСйс ΠΈ Π΅Π³ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ.
  • Controller, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π»ΠΎΠ³ΠΈΠΊΡƒ.

Π’Π°ΠΊΠΆΠ΅ создайтС класс Main с ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ main, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚.

!!! Π‘Π½Π°Ρ‡Π°Π»Π° создайтС UML Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹, ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΡ‚ΠΎΠΌ ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΊΠΎΠ΄. !!!

Π’ ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ класса Main создайтС Controller ΠΈ сдСлайтС 3 запроса с Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΉΡ‚ΠΈ Π½ΠΎΠΌΠ΅Ρ€Π°. Π’Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ всС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ 3 Ρ€Π°Π·Π° с Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ API, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°.


You need to create two classes ArraysUtils and UserUtils with static and final methods and use ArraysUtils methods in HW2 to symplify it.

Create ArraysUtils with following methods

sum(int array[])
min(int array[])
max(int array[])
maxPositive(int array[])
multiplication  (int array[])
modulus(int array[])
secondLargest(int array[])

these should be just copied from your HW2.

In addition add new methods

int[] reverse(int[] array)
int[] findEvenElements(int[] array)

You need to create two classes ArraysUtils and UserUtils with static and final methods and use ArraysUtils methods in HW2 to symplify it.

In HW2 use methods from your ArraysUtils.

You need to create two classes ArraysUtils and UserUtils with static and final methods and use ArraysUtils methods in HW2 to symplify it.

Make sure nobody can inherit your ArraysUtils.

You need to create two classes ArraysUtils and UserUtils with static and final methods and use ArraysUtils methods in HW2 to symplify it.

Create User class with fields

long id
String firstName
lastName
int salary
int balance

and constructor with all fields.

You need to create two classes ArraysUtils and UserUtils with static and final methods and use ArraysUtils methods in HW2 to symplify it.

Create сlass UserUtils with following methods

User[] uniqueUsers(User[] users)
//users are equal when all their field are equal
User[] usersWithContitionalBalance(User[] users, int balance)
//user’s balance == balance
User[] paySalaryToUsers(User[] users)
long[] getUsersId(User[] users)
User[] deleteEmptyUsers(User[] users)

Make sure paySalaryToUsers and getUsersId methods can’t be overriden in other classes.

You need to create two classes ArraysUtils and UserUtils with static and final methods and use ArraysUtils methods in HW2 to symplify it.

Create Main class with main method where you need to create some test users and demonstrate how every method from UserUtils work.


Класс User Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ поля:

 long id
 String firstName
 String lastName
 String city
 int balance

Класс Order:

 long id
 int price
 Currency currency
 String itemName
 String shopIdentificator
 User user

Π’ Main создайтС 10 Π·Π°ΠΊΠ°Π·ΠΎΠ² с 10 ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌΠΈ ΠΈ Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Π΅Π³ΠΎ Π² List.

  • отсортируйтС список Π·Π° Ρ†Π΅Π½ΠΎΠΉ Π·Π°ΠΊΠ°Π·Π° ΠΏΠΎ ΡƒΠ±Ρ‹Π²Π°Π½ΠΈΡŽ
  • отсортируйтС список Π·Π° Ρ†Π΅Π½ΠΎΠΉ Π·Π°ΠΊΠ°Π·Π° ΠΏΠΎ Π²ΠΎΠ·Ρ€Π°ΡΡ‚Π°Π½ΠΈΡŽ ΠΈ Π·Π° Π³ΠΎΡ€ΠΎΠ΄ΠΎΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ
  • отсортируйтС список Π·Π° Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ Π·Π°ΠΊΠ°Π·Π°, ΠΈ Π³ΠΎΡ€ΠΎΠ΄ΠΎΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ (выполняСтся ΠΏΠΎ ТСланию):

  • ΡƒΠ΄Π°Π»ΠΈΡ‚Π΅ Π΄ΡƒΠ±Π»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ со списка
  • ΡƒΠ΄Π°Π»ΠΈΡ‚Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, Π³Π΄Π΅ Ρ†Π΅Π½Π° мСньшС 1500
  • Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅ список Π½Π° 2 списка - Π·Π°ΠΊΠ°Π·Ρ‹ Π² Π΄ΠΎΠ»Π»Π°Ρ€Π°Ρ… ΠΈ Π² Π³Ρ€ΠΈΠ²Π½Π°Ρ…
  • Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅ список Π½Π° ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ списков, сколько ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… Π³ΠΎΡ€ΠΎΠ΄ΠΎΠ² Π² User

Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ класс Main, Π³Π΄Π΅ создайтС 10 Π·Π°ΠΊΠ°Π·ΠΎΠ² с 10 ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌΠΈ ΠΈ Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Π΅Π³ΠΎ Π² TreeSet. Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ 8 ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΈ 2 Π΄ΡƒΠ±Π»ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹Ρ… Π·Π°ΠΊΠ°Π·Π°.

  • ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, содСрТит Π»ΠΈ сСт Π·Π°ΠΊΠ°Π·, Π³Π΄Π΅ фамилия ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ - β€œPetrov”
  • Π²Ρ‹Π²Π΅Π΄ΠΈΡ‚Π΅ Π·Π°ΠΊΠ°Π· с наибольшСй Ρ†Π΅Π½ΠΎΠΉ, ΠΈΡΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ сСт-ΠΌΠ΅Ρ‚ΠΎΠ΄ - get
  • ΡƒΠ΄Π°Π»ΠΈΡ‚Π΅ Π·Π°ΠΊΠ°Π·Ρ‹, Π³Π΄Π΅ Π²Π°Π»ΡŽΡ‚Π° Π΄ΠΎΠ»Π»Π°Ρ€, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Iterator

ВсС подходящиС структуры Π΄Π°Π½Π½Ρ‹Ρ… (массивы) для User с Π”ΠΎΠΌΠ°ΡˆΠ½Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅ 5 Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ пСрСнСсСны.

Π‘Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠΉΡ‚Π΅ Integer ΠΈ String ArrayList ΠΈ LinkedList с 1000 ΠΈ 10000 элСмСнтами. Π˜Π·ΠΌΠ΅Ρ€ΡŒΡ‚Π΅ врСмя выполнСния этих ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΈ Π²Ρ‹Π²Π΅Π΄ΠΈΡ‚Π΅ ΠΈΡ… Π² консоль:

  • add
  • set
  • get
  • remove

Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΉ интСрфСйс AbstractDAO (T) с Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ:

  • List ---- out DB emulator
  • T save(T)
  • void delete(T)
  • void deleteAll(List T)
  • void saveAll(List T)
  • List T getList()

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ (Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎ ТСланию):

  • void daleteById(long id)
  • T get(long id)

Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΉ интСрфСйс AbstractDAO (T) с ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ:

  • List - out DB emulator
  • void deleteByld(long id)
  • T get(long id)

Π‘Π΄Π΅Π»Π°ΠΉΡ‚Π΅ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ AbstractDAOImpl

Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ UserDAO ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ€Π°Π·ΡˆΠΈΡ€ΡΠ΅Ρ‚ AbstractDAOImpl ΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚Π΅ ΠΆΠ΅ самыС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹

  • User class:
  • long id
  • String name

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

UserDAO extends .. {
     User save(User user) {
          save(user);
          return user;
     }

}

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ структуры с HW модуля 7 (User ΠΈ Order) ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ задания, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Java 8 instruments

  • отсортируйтС список Π·Π° Ρ†Π΅Π½ΠΎΠΉ Π·Π°ΠΊΠ°Π·Π° ΠΏΠΎ ΡƒΠ±Ρ‹Π²Π°Π½ΠΈΡŽ

  • отсортируйтС список Π·Π° Ρ†Π΅Π½ΠΎΠΉ Π·Π°ΠΊΠ°Π·Π° ΠΏΠΎ Π²ΠΎΠ·Ρ€Π°ΡΡ‚Π°Π½ΠΈΡŽ ΠΈ Π·Π° Π³ΠΎΡ€ΠΎΠ΄ΠΎΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ

  • отсортируйтС список Π·Π° Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Ρ‚ΠΎΠ²Π°Ρ€Π°, ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ Π·Π°ΠΊΠ°Π·Π°, ΠΈ Π³ΠΎΡ€ΠΎΠ΄ΠΎΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ

  • ΡƒΠ΄Π°Π»ΠΈΡ‚Π΅ Π΄ΡƒΠ±Π»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ со списка

  • ΡƒΠ΄Π°Π»ΠΈΡ‚Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, Π³Π΄Π΅ Ρ†Π΅Π½Π° мСньшС 1500

  • Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅ список Π½Π° 2 списка - Π·Π°ΠΊΠ°Π·Ρ‹ Π² Π΄ΠΎΠ»Π»Π°Ρ€Π°Ρ… ΠΈ Π² Π³Ρ€ΠΈΠ²Π½Π°Ρ…

  • Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅ список Π½Π° ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ списков, сколько ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… Π³ΠΎΡ€ΠΎΠ΄ΠΎΠ² Π² User

  • ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, содСрТит Π»ΠΈ сСт Π·Π°ΠΊΠ°Π·, Π³Π΄Π΅ фамилия ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ - β€œPetrov”

  • ΡƒΠ΄Π°Π»ΠΈΡ‚Π΅ Π·Π°ΠΊΠ°Π·Ρ‹ Π² USD

ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΡ:

  • нСльзя ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€
  • нСльзя ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ†ΠΈΠΊΠ»Ρ‹

ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅ ΠΊΠ°ΠΆΠ΄ΡƒΡŽ ΠΏΠΎΠ΄Π·Π°Π΄Π°Ρ‡Ρƒ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄. Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ класс Main ΠΈ протСстируйтС ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π½Π° тСстовых Π΄Π°Π½Π½Ρ‹Ρ….


Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ класс с main(), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π·Π°ΠΊΠΈΠ΄Ρ‹Π²Π°Π΅Ρ‚ (throws) ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ класса Exception Π²Π½ΡƒΡ‚Ρ€ΡŒ try-Π±Π»ΠΎΠΊΠ°. Π—Π°Π΄Π°ΠΉΡ‚Π΅ конструктору ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ (Exception) Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ Ρ‚ΠΈΠΏΠ° String. ΠŸΠΎΠΉΠΌΠ°ΠΉΡ‚Π΅ (catch) ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π²Π½ΡƒΡ‚Ρ€ΠΈ catch-Π±Π»ΠΎΠΊΠ° ΠΈ Π²Ρ‹Π²Π΅Π΄ΠΈΡ‚Π΅ String argument. Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ finally-Π±Π»ΠΎΠΊ ΠΈ Π²Ρ‹Π²Π΅Π΄ΠΈΡ‚Π΅ сообщСниС Π² Π΄ΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΠΎ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ вызывался.

Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ свой собствСнный класс ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово extends. ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ конструктор для этого класса, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ Ρ‚ΠΈΠΏΠ° String ΠΈ Ρ…Ρ€Π°Π½ΠΈΡ‚ Π΅Π³ΠΎ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΊΠ°ΠΊ ссылку (reference) Π½Π° String. ΠΠ°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Ρ…Ρ€Π°Π½ΠΈΠΌΡƒΡŽ строку. Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ try-catch-Π±Π»ΠΎΠΊΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΡƒΠΏΡ€Π°ΠΆΠ½ΡΡ‚ΡŒΡΡ Π½Π° Π½ΠΎΠ²ΠΎΠΌ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ.

ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅ ссылку (reference) Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠΉΡ‚Π΅ Π΅Π΅ ΠΊΠ°ΠΊ null. ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ Ρ‡Π΅Ρ€Π΅Π· эту ссылку. ΠŸΠΎΡ‚ΠΎΠΌ ΠΎΠ±Π΅Ρ€Π½ΠΈΡ‚Π΅ этот ΠΊΠΎΠ΄ Π² try-catch-Π±Π»ΠΎΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΉΠΌΠ°Ρ‚ΡŒ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅.

Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ класс с двумя ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ f() ΠΈ g(). Π’ g() ΠΊΠΈΠ½ΡŒΡ‚Π΅ (throw) ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ»ΠΈ. Π’ f() Π²Ρ‹Π·ΠΎΠ²ΠΈΡ‚Π΅ g(), ΠΏΠΎΠΉΠΌΠ°ΠΉΡ‚Π΅ Π΅Π³ΠΎ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΈ Π² Π±Π»ΠΎΠΊΠ΅ catch ΠΊΠΈΠ½ΡŒΡ‚Π΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ (Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ»ΠΈ). ΠŸΡ€ΠΎΡ‚Π΅ΡΡ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ свой ΠΊΠΎΠ΄ Π² main().

Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Ρ‚Ρ€ΠΈ Π½ΠΎΠ²Ρ‹Ρ… Ρ‚ΠΈΠΏΠ° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ. ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ класс с ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΊΠΈΠ΄Π°Ρ‚ΡŒ всС Ρ‚Ρ€ΠΈ ΠΈΠ· Π½ΠΈΡ…. Π’ main() Π²Ρ‹Π·ΠΎΠ²ΠΈΡ‚Π΅ этот ΠΌΠ΅Ρ‚ΠΎΠ΄, Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ catch-Π±Π»ΠΎΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Π»ΠΎΠ²ΠΈΡ‚ΡŒ всС Ρ‚Ρ€ΠΈ Ρ‚ΠΈΠΏΠ° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ.


Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ замСняСт слова Π² Ρ„Π°ΠΉΠ»Π΅ (File) ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ строку (String) с Π·Π°ΠΌΠ΅Π½Ρ‘Π½Π½Ρ‹ΠΌΠΈ значСниями.

String replacer(Map map)

Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ замСняСт слова Π² Ρ„Π°ΠΉΠ»Π΅ (File) ΠΈ ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡΠ°Ρ‚ΡŒ Π΅Π³ΠΎ содСрТаниС с Π½ΠΎΠ²Ρ‹ΠΌΠΈ значСниями.

File fileContentReplacer(Map map)

Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ замСняСт слова Π² Ρ„Π°ΠΉΠ»Π΅ (File), ΠΈ вывСсти Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π² ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚ Ρ„Π°ΠΉΠ»Π°.

File fileContentMerger(Map<String, String> map)

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, содСрТит Π»ΠΈ Ρ„Π°ΠΉΠ» ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ΅ слово. ВывСсти 0, Ссли Π½Π΅Ρ‚. ВывСсти Π½ΠΎΠΌΠ΅Ρ€ n, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ эквивалСнтСн числу появлСний этого слова Π² Ρ„Π°ΠΉΠ»Π΅.

int checkWord(String word)

ΠΠ°ΠΏΠΈΡΠ°Ρ‚ΡŒ это Π·Π°Π΄Π°Π½ΠΈΠ΅ с ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌ try ΠΈ try-with-resources(Π΄Π²Π΅ вСрсии).


Yurii Salimov

Releases

No releases published

Packages

No packages published

Languages