Професионална програма
Loading...
+ Нов въпрос
rumar avatar rumar 3 Точки

Grooming Salon от Java Advanced Exam - 26 June 2021

Здравейте,

 може ли някой ми да помогне в решението на  Grooming Salon  - зад.3 от  Java Advanced Exam - 26 June 2021 . Стигам до 90/100. Проблемът ми е в метода getPet(String name, String owner) .

Условие: https://judge.softuni.bg/Contests/Practice/Index/2997#2

Решение: https://pastebin.com/abuM0mVY

 

Тагове:
0
Java Advanced
svephoto avatar svephoto 821 Точки
Best Answer

Здравей, rumar,

 

С getPet(String name , String owner) трябва да върнеш обект от тип "Pet". Ето един примерен вариант на този метод:

 

    public Pet getPet(String name, String owner) {
        return this.data.stream()
                .filter(pet -> pet.getName().equals(name) && pet.getOwner().equals(owner))
                .findFirst().orElse(null);
    }

1
20/07/2021 14:08:45
rumar avatar rumar 3 Точки

  Благодаря ти svephoto,

малко ми трудно с функционално програмиране и ми е доста неразбираемо, но пък кода е доста по-къс . И все пак много ти благодаря за бързия и точен отговор.

0
svephoto avatar svephoto 821 Точки

Моля, rumar, няма проблем, радвам се да помогна. yes laugh

Кодът вътре в метода е равностоен на

Pet currentPet = this.data.stream()
        .filter(pet -> pet.getName().equals(name) && pet.getOwner().equals(owner))
        .findFirst().orElse(null);

return currentPet;

само че, както казваш, е още по-краткият му вариант. Полека-лека ще свикнеш и с този тип програмиране. В случая просто пускаш един поток от запазените в колекцията животни, филтрираш само животното, което отговаря на подадените от отвън име и собственик, като намираш първото такова животно. Ако ли пък няма такова животно - връщаш null. Това се случва в този израз.

0
20/07/2021 14:41:57