Loading...

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

evgenyv avatar evgenyv 12 Точки

[Exam Problems] Java Fundamentals 23.04.2016 - problem {4} - GUnit

Здравейте, 

как сте след вчерашния изпит? :))

Може ли някой да покаже решение на последната задача (GUnit) и това прословуто сортиране?

Ако пък му се занимава, може ли да каже и защо на мен ми върви само Zero test-ът, а после гърми?

линк към моето решение: тук

P.S. Със сегашното решение вече не гърми, проблемът беше липсата на scanner.nextLine(), когато регексът не е мачнат, и съответно зацикляше. Все още има проблем, тъй като резултатът не е пълен.

P.S.2 Задачата вече е 100/100. Оправена е и в github. Проблемът беше, че липсваше вълшебната думичка return на едно място :)) Тънка е границата между 0 и 100 точки - scanner.nextLine() и един return. :D Това е в кръга на шегата, разбира се. Благодаря на всички, които се включиха в дискусията и пратиха решения!

Тагове:
4
Java Advanced 24/04/2016 18:17:16
Chronixius avatar Chronixius 12 Точки

За да не захващам нова тема, ще попитам тук
Реших задачата, дава ми [100/100], но имам едни въпрос.

Това ми е кода.
Забележете 50-ти и 51-ви ред. На тях имам декларирани 2 масива от по 1 елемент.
Въпросните променливи исках да ми държат общия брой на unitTest-ове за даден клас. (Минавам през всеки метод на класа, и добавям броя на UnitTest-овете му към тази променлива).

Първоначално тези 2 масива бяха просто нормални int-ове, но тогава кода не искаше да се компилира.(IntelliJ даваше грешка array required, but int found), съответно на 54-ти и 57-ми ред, където увеличавам стойностите на тези променливи.
Въпроса ми е, защо се налага тези 2 променливи да са масиви, а не ги приема като нормални int-ове. Единственото, което правя с тях е да добавя резултата от Integer.valueOf(), което връща нормален int. Същверемнно компилатора ми казава, че иска array?

PS: Като цяло знам, че идеята при функционалният код е да няма assignment операции, което да позволява работа в паралел, което прави тази част от кода ми "грешна", но просто това ми дойде като първа идея и реших да се придържам към нея.

0
03/05/2016 11:00:16
Ivailo_Kodov avatar Ivailo_Kodov 97 Точки

Аз общия брой на unit тестовете го изведох в две int променливи , като използвах начина от упражнението за Stream API, което беше със .sum() . Или като пример:

int allTests1 = data.get(entry1.getKey()).entrySet().stream().mapToInt((x) -> x.getValue().size()).sum();

Ето  и цялото решение цък: :) . Може да не е най-доброто решение, но съм доволен ,че сам го направих без да гледам от авторското решение :)

0
03/05/2016 00:39:36
Chronixius avatar Chronixius 12 Точки

Хмм, тва със sum() е много добра идея. Иначе виждам, че ползваш mapToInt(). Ще пробвам и с него да видя, може да си оправя проблема с него. Но все още се чудя, защо компилатора ми иска int[], при положение, че единственото, което правя със тези променливи е да добавям стойността на Integer.valueOf(), което връща нормален int.


Edit:
Явно аз не съм внимавал достатъчно. Integer.valueOf() връща Integer wrapper не примитивния int. Преправих си задачата, като дадох двете променливи да са Integer а не int. Пак кода не се компилра, този път със "local variables referenced from a lambda expression must be final or effectively final"

0
03/05/2016 01:48:50
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.